1. JavaScript代码如下:
 代码如下:// Changes XML to JSON
function xmlToJson(xml) {
 // Create the return object
 var obj = {};
 if (xml.nodeType == 1) { // element
 // do attributes
 if (xml.attributes.length > 0) {
 obj["@attributes"] = {};
 for (var j = 0; j < xml.attributes.length; j++) {
 var attribute = xml.attributes.item(j);
 obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
 }
 }
 } else if (xml.nodeType == 3) { // text
 obj = xml.nodeValue;
 }
 // do children
 if (xml.hasChildNodes()) {
 for(var i = 0; i < xml.childNodes.length; i++) {
 var item = xml.childNodes.item(i);
 var nodeName = item.nodeName;
 if (typeof(obj[nodeName]) == "undefined") {
 obj[nodeName] = xmlToJson(item);
 } else {
 if (typeof(obj[nodeName].length) == "undefined") {
 var old = obj[nodeName];
 obj[nodeName] = [];
 obj[nodeName].push(old);
 }
 obj[nodeName].push(xmlToJson(item));
 }
 }
 }
 return obj;
};
2. XML代码:
 代码如下:
 
 
 
 
 
 
 
 
 
 
3. JSON结果:
 代码如下:{
 "@attributes": {
 AID: "=",
 HOME: 0,
 URL: "davidwalsh.name/",
 VER: "0.9",
 },
 SD = [
 {
 "@attributes": {
 FLAGS: "",
 HOST: "davidwalsh.name",
 TITLE: A
 },
 LINKSIN: {
 "@attributes": {
 NUM: 1102
 }
 },
 SPEED: {
 "@attributes": {
 PCT: 51,
 TEXT: 1421
 }
 },
 TITLE: {
 "@attributes": {
 TEXT: "David Walsh Blog :: PHP, MySQL, CSS, Javascript, MooTools, and Everything Else",
 }
 },
 },
 {
 POPULARITY: {
 "@attributes": {
 TEXT: 7131,
 URL: "davidwalsh.name/"
 }
 },
 RANK: {
 "@attributes": {
 DELTA: "-18"
 }
 },
 REACH: {
 "@attributes": {
 RANK = 5952
 }
 }
 }
 ]
}
关于js操作xml感兴趣的朋友还可参考在线工具:
在线XML/JSON互相转换工具
在线XML格式化/压缩工具
希望本文所述对大家的javascript程序设计有所帮助。
下载本文