获取XML中节点属性时遇到的一些小问题
加载和使用XML作为配置文件,进而可以灵活地控制Flash的表现,已经成为一种约定俗成的做法了,今天遇到的问题是这样的,我需要将某节点的属性1作为key,属性2作为value存放在一个Dictionary中,便于以后以键值的方式访问使用,开始的代码如下:
var file_names:Dictionary = new Dictionary();
for (var i:int = 0; i < xml.child("file_names").children().length(); i++)
{
var file:XML = xml.child("file_names").children()[i];
file_names[file.@k] = file.@v;
}
`</pre>
结果我发现不能获得对应key的value,调试中发现,如果直接使用file.@的方式设置Dictionary的key,其key值的真身其实是一个XMLList,如果想让其以String的形式被访问,需要如下写法。
<pre>` var k:String;
var v:String;
var file_names:Dictionary = new Dictionary();
for (var i:int = 0; i < xml.child("file_names").children().length(); i++)
{
var file:XML = xml.child("file_names").children()[i];
k = file.@k;
v = file.@v;
file_names[k] = v;
}
当然也可以直接toString