2011-09-20 53 views
1

你好,我試圖追蹤一些XML數據。我使用了URLLoader,一旦加載完成,我嘗試追溯XML數據。我可以跟蹤整個文件無法跟蹤XML數據?

trace(xmlData); 

但如果我嘗試跟蹤一個特定的節點,我在跟蹤

trace(xmlData.captions); 

什麼可能我做錯了什麼也得不到?我見過的所有教程使得這看起來很直觀,但它不適合我?

//////編輯////

這裏是澄清問題。

protected var xmlLoader:URLLoader = new URLLoader(); 
public var xmlData:XML = new XML(); 

public function loadXML(_filename:String) { 
xmlLoader.addEventListener(Event.COMPLETE, loadIt); 
xmlLoader.load(new URLRequest(_filename));   
} 

function loadIt(e:Event):void { 
xmlData = new XML(e.target.data); 
parseData(xmlData); 
} 
function parseData(input:XML):void { 
    trace(xmlData.captions); 
} 

如果我只是做trace(xmlData);我看到一切都很好。這是當我添加.captions我得到一個空白的痕跡。

這裏是我的XML文件

<?xml version="1.0" encoding="utf-8"?> 
<captions> 
    <cap start="00:01.7"> 
Narrator: Someone watching a car 
    <br/> 
    accelerate toward light speed 
</cap> 
<cap start="00:05.0"> 
    would see something 
    <br/> 
    very strange. 
</cap> 
</captions> 
+0

添加更多的細節,加載代碼,什麼被追蹤和xml本身 –

+0

問題已編輯。 – goose

回答

4

這是因爲<captions>是你所謂的根節點。所以當你嘗試解析input.captions時,你實際上搜索的是captions.captions。解析您的根節點的孩子可以做類似於你已經嘗試過:

function parseData(input:XML):void 
{  
    // xml list of your cap attributes 
    trace(input.cap); 

    for (var i : int = 0; i < input.children().length(); i++) 
    { 
     // every child node within your captions root node 
     trace(input.children()[i]); 
    } 
} 
+0

+1,但你的函數中有var name錯誤xmlData應該輸入 –

1

正如@rvmool說,captions是根節點,因此不會在XML對象存在。

另外,當您想要跟蹤XML的內容時,請不要忘記使用toXMLString()

trace(xmlData.cap.toXMLString());