【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截取字符串的Slice、Substring、Substr函数简单比较还有indexof函数应用
//截取字符,一看就明白!!! var str = "0123456789"; alert(str.substring(5)); 弹出 //56789 alert(str.subs ...
- 半小时C语言题目
每个5分共100分.错选.多选.少选或不选均不得分. .[单选题]一个C程序的执行是从( ) A:本程序的main函数开始,到main函数结束 B:本程序文件的第一个函数开始,到本程序文件的最后一个函 ...
- [Linux] PHP程序员玩转Linux系列-搭建代码开发环境
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...
- EFcore与动态模型
在开发商城系统的时候,大家会遇到这样的需求,商城系统里支持多种商品类型,比如衣服,手机,首饰等,每一种产品类型都有自己独有的参数信息,比如衣服有颜色,首饰有材质等,大家可以上淘宝看一下就明白了.现在的 ...
- 来自高维的对抗 - 逆向TinyTool自制
一.序 无论是逆向分析还是漏洞利用,我所理解的攻防博弈无非是二者在既定的某一阶段,以高维的方式进行对抗,并不断地升级维度.比如,逆向工程人员一般会选择在Root的环境下对App进行调试分析,其是以ro ...
- Apache2.2以上版本与Tomcat整合配置及负载均衡实现
apache2.2以上版本,无需使用jk_mod来集成tomcat,直接使用ajp,很方便. 修改apache配置文件httpd.conf 启用mod_proxy_ajp #LoadModule pr ...
- JavaScript学习--8.1
JavaScript学习--8.1(常见的js代码兼容工具总结) 1.取css样式表和非行间样式的属性 function getStyle(obj,attr){ if(obj.currentStyle ...
- js实现二级联动下拉列表菜单
二级联动下拉列表菜单的难点在于对后台返回的数据进行解析,不多逼逼,直接上代码 上图是后台返回的数据 实现代码如下: var deviceNotExist = true;//防止数据重复 if(data ...
- failed (1113: No mapping for the Unicode character exists in the target multi-byte code page), client: 127.0.0.1...
nginx部署网站后,访问域名,网页显示 500 Internal Server Error ,经查看发现nginx的error.log中有报错: failed (1113: No mapping ...
- TypeScript设计模式之工厂
看看用TypeScript怎样实现常见的设计模式,顺便复习一下. 学模式最重要的不是记UML,而是知道什么模式可以解决什么样的问题,在做项目时碰到问题可以想到用哪个模式可以解决,UML忘了可以查,思想 ...