【Flex】读取本地XML,然后XML数据转成JSON数据
干了一年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;
}
}
}
【Flex】读取本地XML,然后XML数据转成JSON数据的更多相关文章
- 利用python将excel数据解析成json格式
利用python将excel数据解析成json格式 转成json方便项目中用post请求推送数据自定义数据,也方便测试: import xlrdimport jsonimport requests d ...
- 用ajax获取后台数据,返回json数据,怎么在前台使用?
用ajax获取后台数据,返回json数据,怎么在前台使用呢?后台 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == &qu ...
- jQuery操作列表数据转成Json再输出为html dom树
jQuery 把列表数据转成Json再输出为如下 dom树 <div id="menu" class="lv1"> <ul class=&qu ...
- js如何把字符串转换成json数据的方法
js如何把字符串转换成json数据的方法 function strtojson(str){ var json = eval('(' + str + ')'); return json; } 方法二 f ...
- C# DataTable 转换成JSON数据
原文:C# DataTable 转换成JSON数据 using System; using System.Collections.Generic; using System.Data; using S ...
- Jquery Ajax和getJSON获取后台普通Json数据和层级Json数据解析
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 将字典或者数组转换成JSON数据或者字符串
将字典或者数组转换成JSON数据或者字符串 源码: NSDictionary+JSON.h 与 NSDictionary+JSON.m // // NSDictionary+JSON.h // Cat ...
- Java将其他数据类型转换成JSON字符串格式
Student.java package com.demo.servlet; import java.util.List; import java.util.Map; public class Stu ...
- java中将数组、对象、Map、List转换成JSON数据
如果要将数组.对象.Map.List转换成JSON数据,那我们需要一些jar包: json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar commons-logging.ja ...
随机推荐
- java 解析json
例<解析评论> //post方式请求 String url=“http://product.dangdang.com/comment/comment.php?product_id=6056 ...
- RadAsm使用
RadASM 命令行语法 DelCheck,Out,Command,F1[,F2[,Fx]] DelCheck 执行命令前要清除的文件,不使用时设为0 Out 一般指定为O,所有信 ...
- BZOJ 3653: 谈笑风生(DFS序+可持久化线段树)
首先嘛,还是太弱了,想了好久QAQ 然后,这道题么,明显就是求sigma(size[x]) (x是y的儿子且层树小于k) 然后就可以发现:把前n个节点按深度建可持久化线段树,就能用前缀和维护了 其实不 ...
- Linux学习笔记(1)
一.介绍 Linux系统作为服务器操作器的两大优点是其稳定性以及安全性:常见的Linux系统有以下几种: Debian(1993年下半年出的Linux分支) Ubuntu(目前互联网公司使用的比较多的 ...
- 关于NoClassDefFoundError和ClassNotFoundException异常
java.lang.NoClassDefFoundError 和 java.lang.ClassNotFoundException 都是 Java 语言定义的标准异常.从异常类的名称看似乎都跟类的定义 ...
- JavaScript学习--8.1
JavaScript学习--8.1(常见的js代码兼容工具总结) 1.取css样式表和非行间样式的属性 function getStyle(obj,attr){ if(obj.currentStyle ...
- nginx新手入门
nginx的应用 官网(nginx.org) nginx可以做1.web服务(http服务)2.http代理服务3负载均衡在官网(nginx.org)如下图处下载先点击 跳转下一页点击(nginx/w ...
- UI培训自学能学好吗
近年来UI设计师愈来愈红,成为行业热门,越来越多的人开始专注UI培训,也有一部分人在考虑,培训班一般价格不菲,我自学怎么样呢? UI设计是指人机交互过程中的一个界面设计,常用到的有 ps和ai两个工具 ...
- ERP库位分布看板(库位管理)
客户正在使用的看板管理,根据厂家需求,做的二次开发. 一:看板效果 二:客户需求 1.客户需求:XX是一家汽车零部件(胶管,硅胶管等)的生产厂家,因此对原料,半成品的有效期有严格的要求. 多次调研得知 ...
- Java系统属性与Preferences API的简单介绍
系统属性在和Preferences API都是键值对,前者只能当前应用程序中共享数据,而后者可以在用户的各个应用或用户之间共享数据. 系统属性 Java 的系统属性决定了 Java 程序实际运行的环境 ...