JavaScript将XML转成JSON的方法
本文实例讲述了JavaScript将XML转成JSON的方法。分享给大家供大家参考。具体方法如下:
1.JavaScript代码如下:
//ChangesXMLtoJSON
functionxmlToJson(xml){
//Createthereturnobject
varobj={};
if(xml.nodeType==1){//element
//doattributes
if(xml.attributes.length>0){
obj["@attributes"]={};
for(varj=0;j<xml.attributes.length;j++){
varattribute=xml.attributes.item(j);
obj["@attributes"][attribute.nodeName]=attribute.nodeValue;
}
}
}elseif(xml.nodeType==3){//text
obj=xml.nodeValue;
}
//dochildren
if(xml.hasChildNodes()){
for(vari=0;i<xml.childNodes.length;i++){
varitem=xml.childNodes.item(i);
varnodeName=item.nodeName;
if(typeof(obj[nodeName])=="undefined"){
obj[nodeName]=xmlToJson(item);
}else{
if(typeof(obj[nodeName].length)=="undefined"){
varold=obj[nodeName];
obj[nodeName]=[];
obj[nodeName].push(old);
}
obj[nodeName].push(xmlToJson(item));
}
}
}
returnobj;
};2.XML代码:
<ALEXAVER="0.9"URL="davidwalsh.name/"HOME="0"AID="=">
<SDTITLE="A"FLAGS=""HOST="davidwalsh.name">
<TITLETEXT="DavidWalshBlog::PHP,MySQL,CSS,Javascript,MooTools,andEverythingElse"/>
<LINKSINNUM="1102"/>
<SPEEDTEXT="1421"PCT="51"/>
</SD>
<SD>
<POPULARITYURL="davidwalsh.name/"TEXT="7131"/>
<REACHRANK="5952"/>
<RANKDELTA="-1648"/>
</SD>
</ALEXA>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:"DavidWalshBlog::PHP,MySQL,CSS,Javascript,MooTools,andEverythingElse",
}
},
},
{
POPULARITY:{
"@attributes":{
TEXT:7131,
URL:"davidwalsh.name/"
}
},
RANK:{
"@attributes":{
DELTA:"-1648"
}
},
REACH:{
"@attributes":{
RANK=5952
}
}
}
]
}
关于js操作xml感兴趣的朋友还可参考在线工具:
在线XML/JSON互相转换工具
在线XML格式化/压缩工具
希望本文所述对大家的javascript程序设计有所帮助。