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程序设计有所帮助。