代码如下:
/**
* 转换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);
分享到:
相关推荐
在使用Ajax的时候,通常是将数据以XML的格式返回客户端,然后使用Javascript解析DOM结构。但W3C自带的方法和属性在操作的时候不是很方便。从网上找到一个SoftXMLLib.js,提供了使用XPATH访问节点的方式。对于复杂...
通过URL访问接口,获取数据,并将xml格式转换为json格式输出。
本文以解析本地XML为例,网络获取到的返回值只需转换成NSData型,解析是同理 需要解析的xml文件如下,users.xml <?xml version=1.0 encoding=UTF-8?> 用户信息 芳仔小脚印 <age>10 <school>JiangSu ...
JAVA数据转换为JSON格式 示例代码: JSON字符串和java对象的互转【json-lib】 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML、JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很...
jQuery Ajax 的三种格式,在与后台进行数据交互的时候可以是json格式也可以是xml格式,本人建议将数据转化成json格式。 Xml与json的比较 1、可读性 JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的...
入参是字符串格式的xml,目的是解析xml节点值,作为数据库检索where条件,检索出数据库记录,利用四个游标返回四个数据集,然后用groovy脚本将四个游标数据集解析成json出参中对应的四个节点值。出参json有两层结构...
主要实现步骤如下: 1、JSP页面使用脚本代码执行ajax请求 2、Action中查询出需要返回的数据,并转换为json类型模式数据 3、配置struts.xml文件 4、页面脚本接受并处理数据!
它使得使用Fluent API更加简单方便,它可以直接转换返回的响应体到指定的常用类型数据,使用者不需要手工转换,Http-Helper帮助转换了大多数的数据类型,例如:Xml, Json, Json对象,Json对象数组,私有类型,以及...
首先定义SOAP数据,然后创建HTTP对象,然后使用POST提交,获取状态码为200,就说明调用成功,再进行下一步操作…… 看一下具体实现的代码吧 <!--#Include virtual=/Include/json.min.asp--> <% Dim ...
前言:对服务器请求之后,返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) 本篇随便先讲解JSON解析。 正文: 关于JSON: JSON是一种轻量级的数据格式,一般用于数据交互JSON的格式很像Objective...
此存储库包含一组解析器,以通过通用JSON格式在数据类型之间进行转换。 导出功能 使用以下导出来转换为通用的JSON格式: fastaToJson //handles fasta files (.fa, .fasta) genbankToJson //handles genbank files ...
Xidel是一个命令行工具,可使用CSS选择器,XPath / XQuery 3.0从HTML / XML页面下载和提取数据,以及使用JSONiq查询JSON文件或API(例如REST)。 有的无依赖。 它是我的Pascal Internet Tools(请参阅存储库...
“ xml2js”-将XML转换为JSON“ faker”-创建伪造的测试数据。安装$ npm install maxipago-gateway-sdk --save用法导入maxiPago! SDK库。 import maxipago from 'maxipago-gateway-sdk' ;要求网关这种方法建立了
现在,越来越多的应用程序将JSON用作数据格式,因为它比XML更简单,更省力。 但是,没有非常简单的方法来转换JSON文档。 我在.NET中创建了一个库,该库可以使用非常简单的转换语言来转换JSON文档。 这是尝试为JSON...
json字符串传至客户端后在javascript脚本下需将字符串转换为json数据对象,示例如下: var objJson = eval('('+strJson+')'); public string GetJsonByModel(CalendarNotesModel model) 解析业务实体对象为json数据...
json字符串传至客户端后在javascript脚本下需将字符串转换为json数据对象,示例如下: var objJson = eval('('+strJson+')'); public string GetJsonByModel(CalendarNotesModel model) 解析业务实体对象为json数据...
用于转换来自代理服务器的响应json。 安装 npm install node-http-proxy-json 动机 使用需要修改响应。 如果您的代理服务器返回HTML / XML文档,则可以尝试 。 但是有时代理服务器仅返回JSON。 例如,从服务器调用...
serializers是将复杂的数据结构变成json或者xml这个格式的 serializers有以下几个作用: – 将queryset与model实例等进行序列化,转化成json格式,返回给用户(api接口)。 – 将post与patch/put的上来的数据进行验证...
对AFN的常用方法封装,支持缓存、批量请求、Cookie设置、返回数据自动转换为JSON(包括XML)、图片压缩上传等...
介绍 W3C来源数据模型库,支持PROV-O(RDF),... 将PROV文档转换为Networkx MultiDiGraph并返回。 用途请参阅有关使用此程序包的简短教程。 ProvStore广泛使用此软件包, ProvStore是一个免费的来源文件在线存储库。