将节点添加到xml跟踪不会显示任何数据

时间:2009-08-29 10:59:58

标签: xml flash actionscript

到目前为止我有这个动作:

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


xmlLoader.addEventListener(Event.COMPLETE, LoadXML);

xmlLoader.load(new URLRequest("nav.xml"));


function LoadXML(e:Event):void {

xmlData = new XML(e.target.data);
ParseBooks(xmlData);

}

function ParseBooks(bookInput:XML):void {

trace("XML Output");
trace("------------------------");
trace(bookInput);
trace(bookInput.project);


}

这会加载xml,将其分配给bookInput并跟踪它,但是当我尝试跟踪bookInput.project或bookInput.button或bookInput之外的任何内容时,没有返回任何数据,是否有人知道这是为什么?

XML;

    <button label="test1">

        <project path="http://www.google.com">


        </project>

    </button>

    <button label="test2">

        <project path="projects/drawing/DrawingApp.swf">

        </project>

    </button>

    <button label="test3">

        <project path="projects/text/DrawingApp.swf">

        </project>

    </button>

 </buttons>

1 个答案:

答案 0 :(得分:0)

<project path="projects/text/DrawingApp.swf">
</project>

相同
<project path="projects/text/DrawingApp.swf" />

这是一个空节点......好吧。它的文本节点为空,没有节点值。在as3中,如果跟踪没有子节点的节点,则假定您需要XML而不是XMLList,因此它会跟踪节点值。尝试跟踪项目。@ path而不仅仅是项目。

bookInput.project不是正确的路径bookInput是按钮 bookInput.button是所有按钮节点的XMLList,依此类推。

所以如果你想到第一个节点,你可以尝试

bookInput.button[0].project.@path;

要么看一下必要的actionscript 3.0中的xml章节,要么就是你 可以轻松扫描this great article以开始使用。

抱歉,我正急着写这篇文章,希望我有道理。