AS3中的XML到Object

时间:2012-07-14 16:41:40

标签: xml actionscript-3 object

我正在尝试将此XML文件转换为AS3中的对象。

<?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>

任何帮助将不胜感激,谢谢!

2 个答案:

答案 0 :(得分: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)]);
}

但您必须从ext节点中删除该点。它不会用它......

答案 1 :(得分:0)

您是否考虑过使用e4x来获取XML?这将返回一个容易遍历和操纵的对象结构。