该插件有两个方法:
1). z4x 解析xml并转化为json对象。
2). 反射方法,可以反射json对象。
jquery.z4x.js 源码:
$.extend({
z4x: function(s) {
var dom;
if (typeof(s) == "object") {
dom = s;
} else if (typeof(s) == "string") {
if (window.ActiveXObject) {
dom = new ActiveXObject("Microsoft.XmlDom");
dom.async = "false";
dom.loadXML(s);
} else {
dom = new DOMParser().parseFromString(s, "text/xml");
}
}
var _dig = function(ele) {
var oo = {};
var alen = (ele.attributes) ? ele.attributes.length: 0;
for (var i = 0; i < alen; i++) {
oo["$" + ele.attributes[i].name] = ele.attributes[i].value;
}
var elen = ele.childNodes.length;
if (elen == 0) return oo;
var tem;
for (var i = 0; i < elen; i++) {
tem = oo[ele.childNodes[i].nodeName];
if (typeof(tem) == "undefined") {
if (ele.childNodes[i].childNodes.length == 0) {
if (ele.childNodes[i].nodeName == "#text" || ele.childNodes[i].nodeName == "#cdata-section") {
oo["$$"] = ele.childNodes[i].nodeValue;
} else {
oo[ele.childNodes[i].nodeName] = [_dig(ele.childNodes[i])];
}
} else {
oo[ele.childNodes[i].nodeName] = [_dig(ele.childNodes[i])];
}
} else {
tem[tem.length] = _dig(ele.childNodes[i]);
oo[ele.childNodes[i].nodeName] = tem;
}
}
return oo;
};
var oo = {};
oo[dom.documentElement.nodeName] = _dig(dom.documentElement);
return oo;
},
ref : function(o,sp)
{
sp = sp?sp:"\n";
var tem = [];
for(var i in o) tem[tem.length]=i+":"+o[i];
return tem.join(sp);
}
});
使用举例:
1. a.xml
<?xml version="1.0" encoding="utf-8"?>
<root>
<a id="t1" desc="just test">abc</a>
<b id="t2"><![CDATA[
<c>test</c>
]]></b>
</root>
2. 调用
$(function(){
$.get("a.xml",function(data){
var json = $.z4x(data);//只需一步,即可变成json.
alert($.ref(json));//反射json
//alert($.ref(json.root));//继续反射,看看里面有什么
});
})
是不是很简单啊,快试试吧。
分享到:
相关推荐
关于jq读取xml的,有需要的朋友可以下载。
jQuery解析xml文件,实现省市县三级联动下拉框
Jquery操作xml_Demo。 帮一个朋友做的一个Demo实例,用jquery读取xml文件,很简单的操作,一看就明白。
JQuery 省市县三级联动 ,解析中国城市XML,实现联动。需在本地有服务
jquery解析xml
jquery解析xml并实现省市二级联动
jQuery加载并解析XML
jquery读取xml jquery读取xml jquery读取xml jquery读取xml jquery读取xml jquery读取xml
jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery....
jquery.xmlns-1.7.0.js 是根据jquery.xmlns.js改写的适用于各种版本的jquery解析带命名空间的XML数据,里面附有实例代码,如果使用中有遇到问题,可以反馈,我会进一步改进。
jquery 插件jquery 插件jquery 插件jquery 插件
主要介绍了使用jquery解析XML的方法,代码简洁实用,需要的朋友可以参考下
jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件jQuery插件
jQuery xml-to-json xml转JSON jQuery实现xml转JSON插件 有demo和相关文档
jquery.json2xml.js&&jquery.xml2json.js在jQuery的基础上实现json与xml的相互转换
jquery表单验证插件
jQuery官方UI插件 jQuery官方UI插件 jQuery官方UI插件 jQuery官方UI插件
本文实例总结了JQuery解析XML的方法。分享给大家供大家参考,具体如下: 用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做。下面我们来总结几个使用JQuery解析XML的例子。 第一种方案...
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里...
两种实现方式,利用XML实现树形菜单中的数据。可以用在需要让CLIENT修改XML文件的情况。 直接在页面写代码实现实现树形菜单 前者是建立在后者的基础之上的