干了一年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数据的更多相关文章

  1. 利用python将excel数据解析成json格式

    利用python将excel数据解析成json格式 转成json方便项目中用post请求推送数据自定义数据,也方便测试: import xlrdimport jsonimport requests d ...

  2. 用ajax获取后台数据,返回json数据,怎么在前台使用?

    用ajax获取后台数据,返回json数据,怎么在前台使用呢?后台 C# code   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == &qu ...

  3. jQuery操作列表数据转成Json再输出为html dom树

    jQuery 把列表数据转成Json再输出为如下 dom树 <div id="menu" class="lv1"> <ul class=&qu ...

  4. js如何把字符串转换成json数据的方法

    js如何把字符串转换成json数据的方法 function strtojson(str){ var json = eval('(' + str + ')'); return json; } 方法二 f ...

  5. C# DataTable 转换成JSON数据

    原文:C# DataTable 转换成JSON数据 using System; using System.Collections.Generic; using System.Data; using S ...

  6. Jquery Ajax和getJSON获取后台普通Json数据和层级Json数据解析

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 将字典或者数组转换成JSON数据或者字符串

    将字典或者数组转换成JSON数据或者字符串 源码: NSDictionary+JSON.h 与 NSDictionary+JSON.m // // NSDictionary+JSON.h // Cat ...

  8. Java将其他数据类型转换成JSON字符串格式

    Student.java package com.demo.servlet; import java.util.List; import java.util.Map; public class Stu ...

  9. java中将数组、对象、Map、List转换成JSON数据

    如果要将数组.对象.Map.List转换成JSON数据,那我们需要一些jar包: json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar commons-logging.ja ...

随机推荐

  1. 推荐一款好用的WSL终端模拟器

    Windows 10 中包含了一个 WSL(Windows Subsystem for Linux)子系统,我们可以在其中运行未经修改过的原生 Linux ELF 可执行文件.利用它我们可以做很多事情 ...

  2. Android开发10:传感器器及地图相关应用

    前言 啦啦啦~各位小伙伴们好~经过这一学期的Android知识的学习,我们学到了很多和Android开发相关的知识,这一学期的学习也要告一段落了. 一起进入我们今天的相关内容~这次我们将一起学习使用 ...

  3. 【CNMP系列】PHP配置和调优

    上一节我们说到PHP5.6.30在CentOS7.0下的整个安装过程,http://www.cnblogs.com/riverdubu/p/6428226.html 今天我来和大家讲解一下PHP-FP ...

  4. webpack性能优化——DLL

    Webpack性能优化的方式有很多种,本文之所以将 dll 单独讲解,是因为 dll 是一种最简单粗暴并且极其有效的优化方式. 在通常的打包过程中,你所引用的诸如:jquery.bootstrap.r ...

  5. 利用自动类型转换存储string类型

    类型转换是我们最常用的功能.就像上战场用的枪一样,敌人用的冲锋枪, 自己手里就一把步枪,打起仗来始终有点不爽. 因此,基本功能的完善很重要. 通常情况下我们需要String类型转其它的基础类型.这时我 ...

  6. Flex 布局教程

    今天给大家分享一下flex布局的语法 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于 ...

  7. 用DapperExtensions和反射来实现一个通用搜索

    前言 搜索功能是一个很常用的功能,当然这个搜索不是指全文检索,是指网站的后台管理系统或ERP系统列表的搜索功能.常见做法一般就是在搜索栏上加上几个常用字段来搜索.代码可能一般这样实现 StringBu ...

  8. 1740: [Usaco2005 mar]Yogurt factory 奶酪工厂

    1740: [Usaco2005 mar]Yogurt factory 奶酪工厂 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 119  Solved:  ...

  9. 【常见踩坑】USB调试安装失败(Installation failed with message INSTALL_CANCELED_BY_USER)

    一.写在前面 最近一直在忙活着项目重构,忙活了一个多月(那是天天加班,不分昼夜呀,ps:这不是我司要求的哈),终于把沉积了三四年的老项目给重构了,目前在测试阶段,也总算有了点闲时来跟大家分享分享一些问 ...

  10. Web API框架学习——消息管道(二)

    HttpServer的GlobalConfiguration中创建: GlobalConfiguration中确定了第一个HttpMessageHandler消息管道: 首:DefaultServer ...