2010-03-07 99 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]); 
    }