第一种:javascript xml字符串转为json对象
var xmlStr = '<?xml version="1.0" encoding="utf-8" ?><config><name>potatog</name><age>18</age><sex><man>1</man><wman>0</wman></sex></config>';
var xmlStr = '<?xml version="1.0" encoding="utf-8" ?><config><name>potatog</name><age>18</age><sex><man>1</man><wman>0</wman></sex></config>';
var jsonObj = xmlStrToJsonObj(xmlStr);
console.info(jsonObj);
function xmlStrToJsonObj(xmlStr) {
var xmlObj = xmlStrToXmlObj(xmlStr);
var jsonObj = {};
if (xmlObj.childNodes.length > 0) {
jsonObj = xmlObjToJsonObj(xmlObj.childNodes);
}
return jsonObj;
}
function xmlStrToXmlObj(xmlStr) {
var xmlObj = {};
if (document.all) {
var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
xmlDom.loadXML(xmlStr);
xmlObj = xmlDom;
} else {
xmlObj = new DOMParser().parseFromString(xmlStr, "text/xml");
}
return xmlObj;
}
function xmlObjToJsonObj(xmlNodes) {
var obj = {};
if (xmlNodes.length == 0) {
obj = '';
} else {
for (var i = 0; i < xmlNodes.length; i++) {
var node = xmlNodes[i];
if (typeof node.tagName == "undefined" || node.nodeName == "#text") {
obj = node.nodeValue;
} else {
var key = node.tagName;
var parentKey = node.parentNode.tagName;
var value = xmlObjToJsonObj(node.childNodes);
/*var obj2 = {};
obj2["nodeView"]= "<"+key+"> "+value+" </"+key+">";
obj2["nodePartnerPath"] = parentKey;*/
if(typeof value == 'string'){
var obj2 = {};
obj2["nodeView"]= "<"+key+"> "+value+" </"+key+">";
obj2["nodePartnerPath"] = parentKey;
obj[key] = obj2;
}else{
obj[key] = value;
}
}
}
}
return obj;
}
第二种方式:实现XML与JSON数据的相互转换(使用xml2json.js)
1,x2js 介绍
x2js 是一个可以将 XML 数据转换成 JSON 对象,或者将 JSON 对象转成 XML 数据的的 JavaScript 库。它体积小巧,使用简单,而且不依赖任何其他的库。
2,安装配置
(1)首先到其 GitHub 主页下载库代码。
(2)然后在需要使用页面上将其引用进来即可。
1 |
|
原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_1798.html