获取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