2011-09-20 54 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());