循环遍历xml文件

循环遍历xml文件,xml,actionscript-3,Xml,Actionscript 3,我尝试加载一个xml文件并循环遍历其中的元素,xml的结构如下: <root> <device> <cat>image</cat> <sub_cat>dslr</sub_cat> <booked>-1</booked> <pre_book_st>1/1/2013</pre_book_st> <boo

我尝试加载一个xml文件并循环遍历其中的元素,xml的结构如下:

 <root>

<device>    

    <cat>image</cat>    

    <sub_cat>dslr</sub_cat>

    <booked>-1</booked> 

    <pre_book_st>1/1/2013</pre_book_st> 

    <book_len></book_len>   

    <user>R000XXXY</user>   

</device>

 </root>

我不确定我要通过它做什么,这可能是一个非常基本的问题,我完全不知道我需要做什么,谢谢你。在我看来,你好像错过了事件处理程序的名称。完整的侦听器。删除“convertdataRes()”调用并将事件侦听器更改为:

xmlloaderRes.addEventListener(Event.COMPLETE, convertdataRes);

这样,完整的事件将传递给处理程序,函数将引用一个事件对象。

这将允许您循环通过
设备中的每个子项,并获取值,这样您就不必硬编码
cat

import flash.events.Event;

var xml:XML = <root><device><cat>image</cat><sub_cat>dslr</sub_cat><booked>-1</booked>      <pre_book_st>1/1/2013</pre_book_st><book_len></book_len><user>R000XXXY</user></device></root>;

convertData();

function convertData(event:Event=null):void{

var postedlist:XMLList = xml.device.children();
var totallist:Number = postedlist.length();

 for(var i:int=0 ; i < totallist ; i++)
 {
   trace(postedlist[i]);
        /* --traces --
        image
        dslr
        -1
        1/1/2013

        R000XXXY
        */
 }
}
导入flash.events.Event;
var xml:xml=imagedslr-1 1/1/2013R000XXXY;
convertData();
函数convertData(事件:事件=null):无效{
var postedlist:XMLList=xml.device.children();
var totalist:Number=postedlist.length();
对于(变量i:int=0;i
问题是您正在调用
convertdataRes()在代码的开头..如果我把它放在末尾,在创建函数之后,我得到:1136:不正确的参数数。预期1.问题是函数需要一个
事件
对象来运行,而你不传递它,我不知道传递给它什么,我只想运行for循环,我会从什么中获取我需要的,我可以传递给它什么来运行它?我尝试了null,但同样的问题,很抱歉,这只是一个初学者,感谢那里,它运行时没有任何错误,但它没有给出for循环的输出,不知道在哪里检查发生了什么好的,现在需要将节点放入XMLList对象中。您可以使用postedList:XMLList=xml.device.cat提取特定名称的节点,或者,正如samrad所说,使用postedList:XMLList=xml.device.children()获取所有子节点;然后可以使用:for each(var xmlNode:xml in postedList){//action on-xmlNode}遍历每个xml节点
xmlloaderRes.addEventListener(Event.COMPLETE, convertdataRes);
import flash.events.Event;

var xml:XML = <root><device><cat>image</cat><sub_cat>dslr</sub_cat><booked>-1</booked>      <pre_book_st>1/1/2013</pre_book_st><book_len></book_len><user>R000XXXY</user></device></root>;

convertData();

function convertData(event:Event=null):void{

var postedlist:XMLList = xml.device.children();
var totallist:Number = postedlist.length();

 for(var i:int=0 ; i < totallist ; i++)
 {
   trace(postedlist[i]);
        /* --traces --
        image
        dslr
        -1
        1/1/2013

        R000XXXY
        */
 }
}