将xml属性转换为数组

时间:2010-03-07 18:36:03

标签: xml flex parsing e4x

在以下XML中:

<myxml>
    <photos>
        <photo url="1.jpg"/>
        <photo url="2.jpg"/>
        <photo url="3.jpg"/>
        <photo url="4.jpg"/>
     </photos>
</myxml>

如何使用e4x提取网址并使用尽可能少的代码将其推送到数组中?

2 个答案:

答案 0 :(得分:2)

这是一行代码:

var myArray:Array = Array(myXML..@url);
trace(myArray); //outputs: 1.jpg2.jpg3.jpg4.jpg

编辑:实际上,上面的行产生一个数组,其中包含一个长字符串的所有网址。为了生成一个有用的数组,你可以这样做:

var myArray:Array = new Array();
for each(var item:XML in myXML..photo){
  myArray.push(item.@url);
}
trace(myArray); //outputs: 1.jpg,2.jpg,3.jpg,4.jpg

答案 1 :(得分:1)

试试:

var picXML:XML;
var arrayPic:Array = new Array();
var stream:FileStream = new FileStream();
 stream.open("file.xml", FileMode.READ);
picXML = XML(stream.readUTFBytes(stream.bytesAvailable));
stream.close();

for(var i:int = 0; i < calendarsXML.photos.photo.length();i++)
    {
             arrayPic.push(myxml.photos.photo[i].@url);
    }