代码如下:
/**
* 转换xml为对象形式
* @return {Object}
* @param {XMLHttpRequest} elXML
*/
$.fn.toObject = function (){
if (this==null) return null;
var retObj = new Object;
buildObjectNode(retObj,/*jQuery*/this.get(0));
return $(retObj);
function buildObjectNode(cycleOBJ,/*Element*/elNode){
/*NamedNodeMap*/
var nodeAttr=elNode.attributes;
if(nodeAttr != null){
if (nodeAttr.length&&cycleOBJ==null) cycleOBJ=new Object;
for(var i=0;i<nodeAttr.length;i++){
cycleOBJ[nodeAttr[i].name]=nodeAttr[i].value;
}
}
var nodeText="text";
if (elNode.text==null) nodeText="textContent";
/*NodeList*/
var nodeChilds=elNode.childNodes;
if(nodeChilds!=null){
if (nodeChilds.length&&cycleOBJ==null) cycleOBJ=new Object;
for(var i=0;i<nodeChilds.length;i++){
if (nodeChilds[i].tagName!=null){
if (nodeChilds[i].childNodes[0]!=null&&nodeChilds[i].childNodes.length<=1&&(nodeChilds[i].childNodes[0].nodeType==3||nodeChilds[i].childNodes[0].nodeType==4)){
if (cycleOBJ[nodeChilds[i].tagName]==null){
cycleOBJ[nodeChilds[i].tagName]=nodeChilds[i][nodeText];
}else{
if (typeof(cycleOBJ[nodeChilds[i].tagName])=="object"&&cycleOBJ[nodeChilds[i].tagName].length){
cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length]=nodeChilds[i][nodeText];
}else{
cycleOBJ[nodeChilds[i].tagName]=[cycleOBJ[nodeChilds[i].tagName]];
cycleOBJ[nodeChilds[i].tagName][1]=nodeChilds[i][nodeText];
}
}
}else{
if (nodeChilds[i].childNodes.length){
if (cycleOBJ[nodeChilds[i].tagName]==null){
cycleOBJ[nodeChilds[i].tagName]=new Object;
buildObjectNode(cycleOBJ[nodeChilds[i].tagName],nodeChilds[i]);
}else{
if (cycleOBJ[nodeChilds[i].tagName].length){
cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length]=new Object;
buildObjectNode(cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length-1],nodeChilds[i]);
}else{
cycleOBJ[nodeChilds[i].tagName]=[cycleOBJ[nodeChilds[i].tagName]];
cycleOBJ[nodeChilds[i].tagName][1]=new Object;
buildObjectNode(cycleOBJ[nodeChilds[i].tagName][1],nodeChilds[i]);
}
}
}else{
cycleOBJ[nodeChilds[i].tagName]=nodeChilds[i][nodeText];
}
}
}
}
}
}
}
/**
* @return {Element}
* @param {String} _url
*/
$.loadXML = function (_url ,_data){
var ret;
$.ajax({
data : _data ,
type:"post",
url:_url,
async:false,
dataType:"xml",
success:function(xml){
ret = xml;
} ,
error : function(){
Ext.MessageBox.show({
title: '提示',
msg: '操作失败!',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.INFO
});
}
});
return ret.documentElement;
}
使用
var xml = $.loadXML(contextPath+'/dataItemManagerAction.do?method=query' ,{
'typeId' : 'deptNo'
} );
var obj = $(xml).toObject().get(0);
var record = "";
Ext.each(obj.DataItem, function(value,index,a){
record += "<option value='"+value.id+"'>"+value.name+"</option>"
}) ;
$('#'+id).append(record);
分享到:
相关推荐
在IT行业中,数据交换和存储经常需要在不同的格式之间转换,XML(可扩展标记语言)和JSON(JavaScript对象表示法)就是两种常见的数据格式。XML以其结构化和语义化的特性,广泛应用于Web服务和数据交换,而JSON因其...
在Android开发中,可能由于不同的接口或服务返回的数据格式不同,需要将XML数据转换为JSON,或者相反,以便于处理。 描述中的“用于将XML转换为JSON和JSON到XML的Android库”进一步明确了这个库的功能,即它提供了...
jQuery xml-to-json插件是一种用于将XML数据转换为JavaScript Object Notation (JSON)格式的工具。在Web开发中,XML和JSON都是常见的数据交换格式,但它们有着不同的应用场景和优势。XML(Extensible Markup ...
2. **递归转换JSON**:从JSON根对象开始,递归地将每个键值对转换成XML元素。 3. **处理数据类型**:JSON支持各种数据类型,如字符串、数字、布尔值等,需要适当地转换为XML元素或属性。 4. **处理数组**:当遇到...
- 在解析XML和转换JSON的过程中,可能会遇到错误,例如格式不正确、内存不足等。记得检查并处理这些错误,通常通过`NSError`对象来获取错误信息。 5. **性能优化** - 对于大量XML数据,使用第三方库如SSXMLKit或...
这对于那些需要在JSON和XML之间进行数据互换的项目来说尤其有用,例如在企业级移动应用的开发中,可能需要将服务器返回的JSON数据转换为XML格式,以便于进一步处理或与XSLT(eXtensible Stylesheet Language ...
本篇将详细讲解如何使用OkHttp进行网络访问,并解析返回的JSON与XML数据。 首先,我们需要了解OkHttp的基本用法。OkHttp是一个异步的HTTP客户端,它通过减少网络延迟和内存使用来提高性能。创建一个OkHttpClient...
- **错误尝试1**:将XML数据转换为String直接返回,可能导致中文乱码,且浏览器会将该字符串当作HTML文本处理,无法正确解析XML标签。 - **错误尝试2**:直接返回对象,如果对象没有被Spring MVC支持的JSON库(如...
在 Java 中,有多种库可以用来将 Java 对象转换为 JSON 格式,如 Jackson、Gson 和 org.json 等。 **1. 使用 Jackson** Jackson 是一个流行的 Java 库,用于序列化 Java 对象为 JSON,以及反序列化 JSON 为 Java ...
3. 返回JSON:递归结束后,得到的是一个代表XML结构的JavaScript对象,可以使用`JSON.stringify()`将其转换为JSON字符串。 JSON转XML的步骤类似: 1. 解析JSON:使用`JSON.parse()`将JSON字符串转换为JavaScript...
在使用Ajax的时候,通常是将数据以XML的格式返回客户端,然后使用Javascript解析DOM结构。但W3C自带的方法和属性在操作的时候不是很方便。从网上找到一个SoftXMLLib.js,提供了使用XPATH访问节点的方式。对于复杂...
本压缩包"xml2json.zip"包含了在JavaScript环境中将XML数据转换为JSON格式的相关资源。 "xml2json.php"可能是一个PHP脚本,它实现了XML到JSON的转换。在服务器端,PHP可以解析XML文档,然后将其转换为JSON格式,...
1. **JSON解析**:使用`JsonParse()`函数可以将JSON字符串转换为PowerBuilder的对象结构,这样就可以通过对象的方法和属性来访问数据。 2. **JSON序列化**:相反,`JsonStringify()`函数可以将PB对象转换成JSON字符...
在实际使用中,这可能包括将大型的、未格式化的JSON字符串转化为可读的树状视图,或者将JSON数据转换成其他格式,如CSV或XML,以便进一步处理。 **文件名称列表:JsonView** 这表明压缩包内可能包含JSONView的安装...
在Java开发中,我们经常需要将XML数据转换为JSON,或者反之,以便于前端和后端之间的通信。本篇将详细介绍如何使用Java工具类进行XML与JSON的转换,并介绍相关知识。 首先,`pom依赖.txt`文件中应包含的是Maven项目...
总结来说,"jquery-xmlToJson.js"是一个用于XML到JSON转换的jQuery插件,它能够帮助开发者轻松地将XML数据转化为更适应JavaScript环境的JSON格式,提高数据处理的效率,并且兼容多种jQuery版本。在进行Web开发时,...
当我们需要在使用XML的系统和使用JSON的系统之间进行数据交互时,就需要将XML字符串转换为JSON格式。 XML是一种标记语言,它允许自定义标签来描述数据,并且支持嵌套结构。XML文档通常由元素、属性、文本内容等组成...
1. 解析JSON:使用JSON库(如JavaScriptSerializer, Newtonsoft.Json的Json.NET等)将接收到的JSON字符串转换为C#对象。例如,如果JSON数据表示一个数组,可以解析成List;如果表示一个对象,可以解析成自定义的类...
在C#编程环境中,经常需要将XML数据转换为JSON格式,以适应轻量级的数据传输和前端展示需求。本项目"XMLto JSON 源码"正是为此目的设计,它提供了一个C#编写的`XmlToJson`类,能够方便地将XML字符串转换为JSON字符串...
同样,`JavaScriptSerializer`类的`Deserialize`方法可以完成这个任务,将JSON数据转换回指定类型的对象。 2. **AJAX和JSON**: - ASP.NET AJAX(Asynchronous JavaScript and XML)允许在不刷新整个页面的情况下...