【Flex】读取本地XML,然后XML数据转成JSON数据
来源:互联网 发布:淘宝rgmv是什么意思 编辑:程序博客网 时间:2024/06/05 06:23
干了一年H5,最近被要求写编辑器,Electron等级还不够,写不了,只有重新拿起as3,用flex,最近写到数据表编辑模块,有这部分功能,基本完成 。
package utils{ /** * 模块功能:把xml格式的数据 转换成 json格式的数据 * 创建时间:2016-11-26 下午3:33:20 * @author pengxiang * */ public final class ConverXMLToJSON { public function ConverXMLToJSON() { } /** * 函数功能:直接 把XML格式数据 转换成 JSON格式的字符串数据(不添加任何特殊处理,直接输出); * @param $str * @return * */ private static function converXMLToJSON(xml:XML):String { //整理xml字符串为json // $str = removeXMLNameSpace($str); //移除xml中的命名空间 // var xml:XML = XML($str); var obj:Object = converXMLToObject(xml); var str:String = JSON.stringify(obj); return str; } /** * 函数功能:把Object格式数据 转换成 JSON格式的字符串数据; * @param xmlObj * @return String(JSON格式的String) * */ public static function converObjectToJSON(xmlObj:Object):String { //stringify(value:Object, replacer:* = null, space:* = null):String //[静态] 返回 JSON 格式的字符串,用于表示 ActionScript 值。 var str:String = JSON.stringify(xmlObj); return str; } /** * 函数功能:把XML格式数据 转换成 Object格式数据; * @param xml * @return Object * */ public static function converXMLToObject(xml:XML):Object { var obj:Object = new Object(); var ls:XMLList = xml.children(); var atts:XMLList = xml.attributes(); for each (var att:XML in atts){ obj[att.name().toString()]= att.toString(); } if(ls.length() > 0){ for each(var node:XML in ls){ var objsub:Object = converXMLToObject(node); var tmp:Object = obj[node.name()]; if(tmp==null){ obj[node.name()]=objsub; }else if(tmp is Array){ (tmp as Array).push(objsub); } else{ obj[node.name()]=new Array(tmp,objsub); } } } return obj; } /** * 函数功能:去除XML中的命名空间 * @param $str * @return String * */ public static function removeXMLNameSpace($str:String):String { var a:Array = findXMLNameSpace($str); //去除空间声明 var r:RegExp = /xmlns[^"]+"[^"]+"/g; $str = $str.replace(r , ""); //去除空间名使用 for (var i:int = 0; i < a.length; i++){ var s:String = a[i] + ":" r = new RegExp(s , "g"); $str = $str.replace(r , ""); } return $str; } /** * 函数功能:查找XML中的命名空间 * @param $str * @return Array * */ public static function findXMLNameSpace($str:String):Array { var arr:Array = new Array(); var r:RegExp = /xmlns[^"]+"[^"]+"/g; var a:Array = $str.match(r); r = /xmlns:[^=]+=/g; for each (var s:String in a){ var a1:Array = s.match(r); if(a1 && a1.length){ s = a1[0]; s = s.replace("xmlns:" ,"") s = s.replace("=",""); arr.push(s); } } return arr; } }}
0 0
- 【Flex】读取本地XML,然后XML数据转成JSON数据
- 【Flex】读取本地JSON,然后JSON数据转成XML数据
- flex :读取access数据库数据 转化为xml 然后在flex页面显示绑定图片
- (二)读取DB2中XML数据并转换成Dom4j对象 然后再转成org.w3c.dom.Document对象
- flex数据转换之JSON和XML
- Qt读取JSON和XML数据
- Qt读取JSON和XML数据
- 读取本地json数据
- 从数据库中读取出数据,然后用XML输出
- flex接收XML数据
- android解析xml和json数据(获取本地服务器数据)
- 树形数据读取 java bean /json/xml 有大量数据
- Android : JSON存取数据 以及 DOM读取XML数据
- js读取xml 数据
- XML读取数据
- javascript 读取xml 数据
- Silverlight读取*.XML数据
- ExtJs 读取 Xml 数据
- ActiveMQ(五)_伪集群和主从高可用使用
- 免费的 Twitter Bootstrap 后台模板
- IntelliJ IDEA中的maven模块不见了
- kafka connector之sink
- 语音播报文字
- 【Flex】读取本地XML,然后XML数据转成JSON数据
- #466 – 将GridSplitter和SharedSizeGroup联合使用(Using a GridSplitter in Conjunction with a SharedSizeGroup)
- Linux-awk数组
- windows安装Scipy时出现 No Lapack/Blas Resources Found
- 如何提升你的面试机会?
- Linux 文件系统:procfs, sysfs, debugfs 用法简介
- fd 1
- 虚拟机安装centos7的小坑-找不到网卡
- C++中L和_T()之区别