【Flex】读取本地JSON,然后JSON数据转成XML数据
package utils
{
import flash.xml.XMLDocument;
import flash.xml.XMLNode;
import mx.rpc.xml.SimpleXMLEncoder;
/**
* 模块功能:把json格式的数据 转换成 xml格式的数据
* 创建时间:2016-11-26 下午3:33:20
* @author pengxiang
*
*/
public final class ConverJSONToXML
{
public function ConverJSONToXML()
{
}
/**
* 函数功能:把Object格式数据 转换成 XML格式数据;(方法1 可以用,完全灵活,但是对于本项目有BUG,作为下面优化的参考)
* @param obj Object格式数据
* @param rootNodeName XML根节点名称
* @return XML
*
*/
public static function converObjectToXML1(obj:Object,rootNodeName:String):XML {
var qName:QName = new QName(rootNodeName);
var xmlDocument:XMLDocument = new XMLDocument();
var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(obj, qName, xmlDocument);
var xml:XML = new XML(xmlDocument.toString());
// trace(xml.toXMLString());
return xml;
}
/**
* 函数功能:把Object格式数据 转换成 XML格式数据;(方法2 不可以用,半灵活,有BUG,作为下面优化的参考)
* @param obj Object格式数据
* @param nodeParentName XML根节点名称
* @return XML
*
*/
public static function converObjectToXML2(obj:Object,nodeParentName:String):XML
{
var nodeParent:XML = <{nodeParentName}/>;
for(var item:Object in obj){
var node:XML = new XML(<{item}></{item}>);
if (item == "arr"){
var arr :Array = String(obj[item]).split(",");
for (var i:int=0;i<arr.length;i++){
node.appendChild(new XML(<{i}>{arr[i]}</{i}>));
}
}else if (item == "Item"){
converObjectToXML2(obj[item], node);
}else{
node = new XML(<{item}>{obj[item]}</{item}>);
}
nodeParent.appendChild(node);
}
trace(nodeParent.toXMLString());
return nodeParent;
}
/**
* 函数功能:把Object格式数据 转换成 XML格式数据;(方法3 可以用,半写死半灵活的方法,针对本项目设定的json格式,无BUG )
* @param itemObj Object格式数据
* @param rootNodeName XML根节点名称
* @param itemNodeName XML子节点名称
* @return XML
*
*/
public static function converObjectToXML(itemObj:Object,rootNodeName:String,itemNodeName:String):XML
{
// var rootNode:XML = <root/>;
// for(var i:int=0;i<itemObj.length;i++)
// {
// var obj:Object = itemObj[i];
// var itemNode:XML = <Item/>;
// for(var str:String in obj)
// {
// itemNode["@"+str] = obj[str];
// }
// rootNode.appendChild(itemNode);
// }
var rootNode:XML = <{rootNodeName}/>;
for(var i:String in itemObj)
{
var obj:Object = itemObj[i];
var itemNode:XML = <{itemNodeName}/>;
for(var str:String in obj)
{
itemNode["@"+str] = obj[str];
}
rootNode.appendChild(itemNode);
}
return rootNode;
}
public static function objectToXml(obj:Object, root:*):void
{
for(var str:String in obj)
{
root["@"+str] = obj[str];
}
}
/**
* 返回XML文件字符串
* @param value
* @return
*
*/
public static function toXMLFileString(value:XML):String
{
return '<?xml version="1.0" encoding="utf-8"?>\n' + value.toXMLString();
}
}
}
【Flex】读取本地JSON,然后JSON数据转成XML数据的更多相关文章
- 如何使用Google APIs和Google应用系统集成(7)----在里面JSON兑换XML数据处理,JSON数据包括违规XML数据规范:XML节点名称不支持号码Java解
笔者电话Google Calendar APIs的GetColors方法,其中(有关详细信息Google Calendar API已经Google API看到我的博文介绍的其余部分,目前,我们只取Go ...
- Ajax--解析JSON数据与解析XML数据
一.Ajax解析JSON数据 nav.json(json数据) [ { "link":"http://www.jd.com", "src": ...
- json数据相对于xml数据.
JSON is a valid subset of JavaScript, Python, and YAML JSON parsing is generally faster than XML par ...
- js把树形数据转成扁平数据
我就直接上代码了都是实际项目里面用到的 1.假设这个json就已经是树型结构数据了(如果不知道怎么实现树型结构数据请看我另一篇博客) var compressedArr=afcommon.treeDa ...
- 微软BI 之SSIS 系列 - 两种将 SQL Server 数据库数据输出成 XML 文件的方法
开篇介绍 在 SSIS 中并没有直接提供从数据源到 XML 的转换输出,Destination 的输出对象有 Excel File, Flat File, Database 等,但是并没有直接提供 X ...
- js把json数据转化成树形数据
/*转化函数*/ function(data, attributes) { let resData = data; let tree = []; for(let i = 0; i < resDa ...
- 把DataTable中的数据拼接成XML时遇到的问题
错误信息:System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Serve ...
- 数据库数据导出成XML文件
在数据库中,怎样把库中的数据导出XML文件, sql语句如下: SELECT * FROM 表名 FOR XML AUTO, ELEMENTS
- Oracle查询多行数据合并成一行数据
例如: select base_id, translate (ltrim (text1, '/'), '*/', '*,') xmmc,translate (ltrim (text2, '/'), ' ...
随机推荐
- Javascript基本概念(一)
JavaScript基本语法: ECMAScript的语法大量借鉴了C以及其他类C语言的语法. ECMAScript中的一切(变量.函数名.操作符)都区分大小写. 标识符: 含义:指变量.函数.属性的 ...
- BZOJ 3925: [Zjoi2015]地震后的幻想乡(概率)
CLJ就是喜欢出ctsc上讲的东西,看来还是得找时间把他的那几道题做下 首先记f(x)为答案>x的概率,那么把这个东西从0到1积分就是答案了 f(x)<=>边小于x不能使图联通的概率 ...
- 记一个Java错误 1 -- Unsupported major.minor version 52.0
今天打开ADT eclipse 准备调试上周的安卓项目, 发现总是报错 如图: 百度了一下说是 jdk版本过低的问题 (低版本的jre运行高版本project) 于是就修改了一下 window - ...
- ucGUI的学习小结
前言 做一个小项目时需要实现GUI及相关操作(响应按键).用的SoC的优点是功耗低,但是受限于硬件能力,之前的SDK里并没有对GUI有很好的支持.后面对GUI的界面外观还有一定的要求,就在网上搜了一下 ...
- 中文分词工具thulac4j正式发布
1. 介绍 thulac4j是THULAC的Java 8实现,相比于官方Java实现THULAC-Java,我们做了如下工作: 规范化分词词典,并去掉一些无用词: 重写DAT(双数组Trie树)的构造 ...
- wemall软件交易平台微信图文编辑器部分代码分享
wemall软件交易平台微信图文编辑器部分代码,可下载: controller.php <?php date_default_timezone_set("Asia/chongqing& ...
- 微信开源PHP商城系统一处blind xxe(无需登录,附POC)
测试版本wemall 3.3 下载地址 http://git.oschina.net/einsqing/wemall/repository/archive?ref=master 需要开源中国的账号 c ...
- 1753: [Usaco2005 qua]Who's in the Middle
1753: [Usaco2005 qua]Who's in the Middle Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 290 Solved: ...
- 1684: [Usaco2005 Oct]Close Encounter
1684: [Usaco2005 Oct]Close Encounter Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 387 Solved: 181[ ...
- 剑指offer_(4)
重建二叉树: 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍 ...