2012-07-14 74 views
0

我正在嘗試將此XML文件轉換爲AS3中的對象。AS3中的XML到對象

<?xml version="1.0" encoding="utf-8"?> 
<mimeTypes> 
    <mimeType> 
     <ext>.ico</ext> 
     <type>image/x-icon</type> 
    </mimeType> 
    <mimeType> 
     <ext>.txt</ext> 
     <type>text/plain</type> 
    </mimeType> 
    <mimeType> 
     <ext>.html</ext> 
     <type>text/html</type> 
    </mimeType> 
</mimeTypes> 

問題是我試圖讓ext =類型。例如, ;

mimeTypes[".ico"] = "image/x-icon"; 
mimeTypes[".txt"] = "text/plain"; 
mimeTypes[".html"] = "text/html"; 

有沒有反正我可以做到這一點?

這是我的代碼現在:

var mimeXML = new XML(e.target.data); 
var len:uint = mimeXML.mimeType.length(); 
mimeT[mimeXML.mimeType.child("ext")] = mimeXML.mimeType.child("type"); 
for(var id:String in mimeT) { 
    var value:Object = mimeT[id]; 
    trace(id + " = " + value); 
} 

但是,它輸出:

<ext>.ico</ext> 
<ext>.txt</ext> 
<ext>.html</ext> = <type>image/x-icon</type> 
<type>text/plain</type> 
<type>text/html</type> 

任何幫助,將不勝感激,謝謝!

回答

1

mimeTypes [String(myXMLNode)] = myXMLNode;

你的情況:

var xml:XML = 
<mimeTypes> 
    <mimeType> 
     <ext>ico</ext> 
     <type>image/x-icon</type> 
    </mimeType> 
    <mimeType> 
     <ext>txt</ext> 
     <type>text/plain</type> 
    </mimeType> 
    <mimeType> 
     <ext>html</ext> 
     <type>text/html</type> 
    </mimeType> 
</mimeTypes> 

var myObject:Object = new Object; 
for(var i:int = 0; i < xml.mimeType.length(); i++) 
{ 
    var type:Object = new Object; 
    type[String(xml.mimeType[i].ext)] = xml.mimeType[i].type; 
    myObject[String(xml.mimeType[i].ext)] = type; 
    trace(type[String(xml.mimeType[i].ext)]); 
} 

,但你必須從內線節點刪除點。它不會與它一起工作...

+0

它似乎沒有工作,它輸出與以前一樣。我需要它,因此可以在XML文件中添加更多的mimeTypes,並且使ext等於該類型。 – 2012-07-14 16:56:39

+0

var mimetypes:Object = new Object();是你的對象,你可以通過將它們轉換爲String來在對象上創建一個danymic屬性。因此,myObject [String(myXMLNode)] = myXMLNode其中,myXMLNode是對象中的屬性名稱,並將其分配給節點的內容。 – Drala 2012-07-14 17:00:26

+0

mimeTypes [String(mimeXML.mimeType.child(「ext」))] = mimeXML.mimeType.child(「type」); ? – 2012-07-14 17:03:07

0

您是否考慮過使用e4x來獲取XML?這將返回一個易於遍歷和操作的對象結構。

+0

我不知道我會如何做到這一點。我只需要一個簡單的方法來將ext值與類型值相關聯。 – 2012-07-14 16:52:35