用于分析Flash内部XML,并转换成对象的类
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-10
最近写的用于分析Flash内部XML,并转换成对象的类.与大家分享. 我用了多次,可以解析较复杂的XML对象. 代码如下: import mx.events.EventDispatcher; class XmlToArray { private var data : Object, xml : Object; public var tem_nodes : XML; function XmlToArray (tn : XML) { tem_nodes = tn; tem_nodes.ignoreWhite = true; } function toObject () : Object { var data : Object = parse (tem_nodes); return data; } private function parse (node : XMLNode) : Object { //var node:XMLNode = tem_nodes; var value : Object = new Object (); if (node.childNodes.length != (undefined || null)) { var nodes : Number = node.childNodes.length; var type : String = "xml" } else { var temp_array = node; var nodes : Number = temp_array.length; var type : String = "array" } for (var i = 0; i != nodes; ++ i) { if (type == "xml") { var name : String = node.childNodes [i].nodeName; } else { var name : String = node [i].nodeName; } if (name != null) { if (value [name] != undefined) { if ( ! (value [name] instanceof Array)) { value [name] = new Array (value [name]); } if (type == "xml") { value [name].push (getValue (node.childNodes [i])); } else { value [name].push (getValue (node [i])); } } else { if (type == "xml") { value [name] = getValue (node.childNodes [i]); } else { value [name] = getValue (node [i]); } } } else { if (type == "xml") { value = getValue (node.childNodes [i]); } else { value = getValue (node [i]); } } } var attributes : Object = getAttributes (node); if (attributes != null) { if (nodes != 0) { if ( ! (value instanceof XMLNode)) { for (var i in value) { attributes [i] = value [i]; } } else { attributes [’_val’] = value.nodeValue; } } return attributes; } return value; } private function getAttributes (node : XMLNode) : Object { var attributes = new Object (); for (var i in node.attributes) { attributes [i] = node.attributes [i]; } return i != undefined ? attributes : null; } private function getValue (node : XMLNode) : Object { switch (node.nodeType) { case 1 : return parse (node); case 3 : return node.toString (); } return null; } private function finalize () { delete xml; } } 欢迎与我交流 关键词:对象 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 画笔步骤录制下一篇: 关于导入MP3的问题及如何拥有更多颜色样本
关于用于分析Flash内部XML,并转换成对象的类的所有评论