您好我正在尝试跟踪一些XML数据。我使用了URLLoader,一旦加载完成,我尝试追溯XML数据。我可以追踪整个文件
trace(xmlData);
但如果我试图追踪一个特定的节点,我的踪迹中什么都没有。
trace(xmlData.captions);
我可能做错了什么?我见过的所有教程都让这看起来很直接,但它对我不起作用?
////// EDIT ////
这里是澄清的问题。
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);
}
如果我只是做跟踪(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 :(得分: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]);
}
}
答案 1 :(得分:1)
正如@rvmool所说,captions
是根节点,因此它不存在于XML对象中。
另外,当您希望跟踪XML内容时,请不要忘记使用toXMLString()
。
trace(xmlData.cap.toXMLString());