【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, '/'), ' ...
随机推荐
- ubuntu的常用命令
1. locate------根据名字找文件,例如: locate php.ini 2.find----------以目录结构的形式搜索文件, 例如:find / -type d -iname jvm ...
- [TPYBoard-Micropython之会python就能做硬件 5] 学习使用重力传感器及PWM
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板 一块 2 ...
- C:\Users\用户名\AppData里面的文件可以删除吗
很多人发现电脑中C:\Users\用户名\AppData 占据了很大的空间,那么可以将其删除吗?下面为大家详细介绍相关知识! C:\Users\用户名\AppData里面一般有三个文件夹,分别是Loc ...
- POJ 2396 Budget 有上下界的网络流
POJ 2396 Budget 题意简述:给定矩阵(每个元素都是非负整数)各行各列的和,并且限制其中的某些元素,给出一个可行解,特殊评测.矩阵规模小于200*20. 网络流的模型是显而易见的,不过对 ...
- Java多线程编程(四)—浅谈synchronized与lock
一.共享资源竞争问题 在Java语言的并发编程中,由于我们不知道线程实际上在何时运行,所以在实际多线程编程中,如果两个线程访问相同的资源,那么由于线程运行的不确定性便会在这种多线程中产生访问错误.所以 ...
- HTTP基础知识(二)
接着上一章的内容:HTTP基础知识(一) 二.简单的HTTP协议 1.客户端:请求访问文本或图像等资源的一端称为客户端: 服务器端:提供资源响应的一端 2.以百度为例子 这是请求头: 在起始行 ...
- Linux 下查看CPU的使用情况
1.top使用权限:所有使用者使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]说明:即时显示process的动态d :改变显示的更新速度,或是在交谈 ...
- mysql之连接localhost与127.0.0.1的区别
引言 在聊天群里看到有人提到 mysql 中 localhost 和 127.0.0.1 的区别,这个之前并没有仔细考虑过.现在来学习下. localhost 与 127.0.0.1 区别 local ...
- 【Scala】Scala之Object
一.前言 前面学习了Scala的Methods,接着学习Scala中的Object 二.Object Object在Scala有两种含义,在Java中,其代表一个类的实例,而在Scala中,其还是一个 ...
- 解决AJAX在火狐,谷歌都能正常运行,而IE不行的问题
如图所示: 经过一系列测试,并不是data参数的问题,也不是if...else...判断的问题,居然是console.log()将函数阻拦住了,百度了下说低版本的IE不支持console.log(), ...