将Flash内部的XML转换成对象的类

2008-04-02 11:03:34来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  最近写的用于分析Flash内部XML,并转换成对象的类.和大家分享.

  我用了多次,能够解析较复杂的XML对象.

  XmlToArray类代码如下,请保存为XmlToArray.as:

  
importmx.events.EventDispatcher;

  classXmlToArray

  {

  privatevardata:Object,xml:Object;

  publicvartem_nodes:XML;

  functionXmlToArray(tn:XML)

  {

  tem_nodes=tn;

  tem_nodes.ignoreWhite=true;

  }

  functiontoObject():Object

  {

  vardata:Object=parse(tem_nodes);

  returndata;

  }

  privatefunctionparse(node:XMLNode):Object

  {

  //varnode:XMLNode=tem_nodes;

  varvalue:Object=newObject();

  if(node.childNodes.length!=(undefined||null))

  {

  varnodes:Number=node.childNodes.length;

  vartype:String="xml"

  }else

  {

  vartemp_array=node;

  varnodes:Number=temp_array.length;

  vartype:String="array"

  }

  for(vari=0;i!=nodes; i)

  {

  if(type=="xml"[img]/images/wink.gif[/img]

  {

  varname:String=node.childNodes[i].nodeName;

  }else

  {

  varname:String=node[i].nodeName;

  }

  if(name!=null)

  {

  if(value[name]!=undefined)

  {

  if(!(value[name]instanceofArray))

  {

  value[name]=newArray(value[name]);

  }

  if(type=="xml"[img]/images/wink.gif[/img]

  {

  value[name].push(getValue(node.childNodes[i]));

  }else

  {

  value[name].push(getValue(node[i]));

  }

  }else

  {

  if(type=="xml"[img]/images/wink.gif[/img]

  {

  value[name]=getValue(node.childNodes[i]);

  }else

  {

  value[name]=getValue(node[i]);

  }

  }

  }else

  {

  if(type=="xml"[img]/images/wink.gif[/img]

  {

  value=getValue(node.childNodes[i]);

  }else

  {

  value=getValue(node[i]);

  }

  }

  }

  varattributes:Object=getAttributes(node);

  if(attributes!=null)

  {

  if(nodes!=0)

  {

  if(!(valueinstanceofXMLNode))

  {

  for(variinvalue)

  {

  attributes[i]=value[i];

  }

  }else

  {

  attributes[’_val’]=value.nodeValue;

  }

  }

  returnattributes;

  }

  returnvalue;

  }

  privatefunctiongetAttributes(node:XMLNode):Object

  {

  varattributes=newObject();

  for(variinnode.attributes)

  {

  attributes[i]=node.attributes[i];

  }

  returni!=undefined?attributes:null;

  }

  privatefunctiongetValue(node:XMLNode):Object

  {

  switch(node.nodeType)

  {

  case1:

  returnparse(node);

  case3:

  returnnode.toString();

  }

  returnnull;

  }

  privatefunctionfinalize()

  {

  deletexml;

  }

  }
用法:

  
importXmlToArray;

  varxml=newXML("<CourseWare><name>AAAAA</name></CourseWare>");

  xml.ignoreWhite=true;

  varmy_xml=newXmlToArray(xml);

  vara:Object=my_xml.toObject();

  //a就是转换出来的对象。


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: FLASHMX2004制作缓冲断层效果

下一篇: AS2.0static关键字