[英]Loading XML into Flex AS3
我試圖能夠從XML文檔中加載所有XML數據,即使經過研究,整夜都失敗了
這是我要加載的XML的片段:
<?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代碼的片段:
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`
首先,您應該查看e4x的文檔 。 其次:您到底想做什么?
您可以將最后一行更改為this.docXML.ATOM::entry.content..NAESB::interval.length()
但我不確定您實際上是想擺脫xml文檔的內容。 獲取節點的長度對於從xml文件中獲取實際數據不是很有用。
感謝frankhermes和www.Flextras.com的幫助我的學習的答案是,為了繼續遍歷,需要在XML中添加另一個ATOM命名空間以保持遍歷。
var entries = this.docXML.ATOM::entry;
trace(entries[3].content.length());
應該
var entries = this.docXML.ATOM::entry;
trace(entries[3].ATOM::content.length());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.