【发布时间】:2012-05-12 17:16:54
【问题描述】:
我正在尝试能够从 XML 文档中加载所有 XML 数据,并且即使进行研究也整晚都失败了
这是我尝试加载的 XML 的 sn-p:
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id>urn:uuid:5762c9e8-4e65-3b0c-83b3-7874683f3dbe</id>
<link href="/v1/espi_third_party_batch_feed" rel="self">
</link>
<title type="text">Opower ESPI Third Party Batch Feed v1</title>
<updated>2012-04-03T22:55:36.364Z</updated>
<entry>
<id>urn:uuid:baa6a50a-1306-3680-80a4-51d228db8f25</id>
<link href="/v1/User/3560606/UsagePoint/6403112/MeterReading/1/IntervalBlock/1" rel="self">
</link>
<content type="xml">
<IntervalBlock xmlns="http://naesb.org/espi">
<interval>
<duration>3600</duration>
<start>1299128400</start>
</interval>
<IntervalReading>
<timePeriod>
<duration>3600</duration>
<start>1299128400</start>
</timePeriod>
<value>436</value>
</IntervalReading>
</IntervalBlock>
</content>
</entry>
</feed>
这是我在 XmlLoader 中困惑的 AS3 代码的 sn-p:
public function returnArray():Array
{
var ATOM:Namespace = new Namespace("http://www.w3.org/2005/Atom");
var NAESB:Namespace = new Namespace("http://naesb.org/espi");
trace("entered returnArray");
var tempArray:Array = new Array();
var x:Number = 0;
var y:Number = 0;
var entries = this.docXML.ATOM::entry;
trace(entries.length()); //returns 4 and supposed to
trace(entries[3].content.length()); //returns 0 supposed to return 1
trace(this.docXML.ATOM::entry[3].content.NAESB::interval.length()); //returns 0`enter code here`
【问题讨论】:
-
很抱歉您未能完成这项任务。你能告诉我们你为什么/如何失败吗?问题是什么?您是否收到运行时错误?或者是其他东西?我是否错过了您共享加载 XML 的代码的部分?
-
没有错误,它只是不允许我访问标签 IntervalBlock 中的嵌套 xmlns,以便我可以读取嵌套在该标签内的时间/能源使用情况,因为我正在尝试为any1 可以使用的应用程序我不能只删除 xmlns 标签,因为这些数据是由美国各地的能源公司以标准格式提供的
-
您的主题行声称问题在于加载数据;但听起来您的问题是在加载数据后访问数据。那是对的吗?您说“它不允许您访问嵌套的 xmlns?什么不是?您的 XML 没有任何特殊的命名空间项;但看起来您正在尝试访问它们,就好像它们在命名空间中一样。跨度>
-
它允许我查看它就是它;如果我做一个跟踪(this.docXML.ATOM::entry); if 将解析所有内容,但无法访问事件之外的任何标签,即使 flex 愿意在 XML 中查看它。
标签: xml actionscript-3 apache-flex loader