我正在尝试将此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>
任何帮助将不胜感激,谢谢!
答案 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?这将返回一个容易遍历和操纵的对象结构。