2010-03-07 94 views
1

在下面的XML:转换XML属性数组

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

如何使用E4X来提取URL,并用尽可能少的代码把他们在一个数组?

回答

2

这是一行代码:

var myArray:Array = Array([email protected]); 
trace(myArray); //outputs: 1.jpg2.jpg3.jpg4.jpg 

编辑:其实以上生产线生产的所有URL的一个长字符串数组。为了产生有用的数组,你会想这样做:

var myArray:Array = new Array(); 
for each(var item:XML in myXML..photo){ 
    myArray.push([email protected]); 
} 
trace(myArray); //outputs: 1.jpg,2.jpg,3.jpg,4.jpg 
+0

这不会(我会假设你想用'Array.prototype.slice.call')工作,因为它预计'长度“是一个数字,而不是一个函数。 – 2010-03-11 03:29:28

+0

???你在说什么?您的评论与我的代码示例无关? – invertedSpear 2010-03-11 15:12:16

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][email protected]); 
    }