AS3.0中将XML转化为有相同结构的Object

  一直在想如何使用一个方法就能把外部XML文件的数据全部读取金AS中,这样既省事又方便,特别是用AS制作一些网站或者是需要用到小型外部数据的东西的时候……经过蓝色上高手们的指点,这样做其实是不必要的,但加深对E4X标准也不错。
    因为水平有限,所以肯定还有不够优化的地方,AS版本3.0:

package {
  public class ChangeXML{
  public function ChangeXML(){
  }
  public function readXML(xml:XML):Object {
    var returnObj:Object=new Object();
    walkXML(returnObj,xml);
    function walkXML(obj:Object,xml:XML) {
      for each (var subXML:XML in xml.elements()) {
        obj[subXML.name()]=new Object();
        writeObj(obj[subXML.name()],subXML);
        walkXML(obj[subXML.name()],subXML);
      }
    }
    function writeObj(obj:Object,xml:XML) {
      for each (var attribute:XML in xml.attributes()) {
        var dename:String=String(attribute.name())
        obj[dename]=attribute.toString();
      }
    }
    return returnObj;
    }
  }
}
  目前不足的地方为没有读取文本节点内容的功能,只能读取元素节点中的属性。所以还要继续改进,直到功能完善为止。

你可能感兴趣的:(数据结构,xml)