2012-07-14 34 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