0

我正在尝试将此 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>

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

4

2 回答 2

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 节点中删除点。它不会与它一起工作......

于 2012-07-14T16:51:59.947 回答
0

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

于 2012-07-14T16:45:55.707 回答