| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
如何加入透明Flas
为新浪博客添加fl
flashget下载联盟
265联盟:“Flash
HKflash提供免费个
FLASH调用XML数据
Flash Remoting -
Flash Com
借助js在flash中運
flash事件模型核心

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

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

作者:佚名 来源:不详 更新:2007-1-13 20:36:52 错误报告 我要投稿
    最近写的用于分析Flash内部XML,并转换成对象的类.与大家分享.
    我用了多次,可以解析较复杂的XML对象.
XmlToArray类代码如下,请保存为XmlToArray.as:
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"[img]/images/wink.gif[/img]
   {
    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"[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]);
    }
   
   }
  }
  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;
 }
}
用法:
import XmlToArray;
var xml = new XML("<CourseWare><name>AAAAA</name></CourseWare>");
xml.ignoreWhite = true;
var my_xml = new XmlToArray(xml);
var a:Object = my_xml.toObject();
//a就是转换出来的对象。
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。