前几天java解析xml,今天没事写了个js解析xml供大家看看,详细这很有用的,如:级联,ajax特效等等
//temp.xml
<?xml version="1.0" encoding="gb2312"?>
<NewDataSet>
<table> <!--形式一-->
<nid>1 </nid>
<name>A </name>
</table>
<table>
<nid>2 </nid>
<name>B </name>
</table>
<table>
<nid>3 </nid>
<name>C </name>
</table>
<table2>
<nid>4</nid>
<nnid>1</nnid>
<name>a1</name>
</table2>
<table2>
<nid>5</nid>
<nnid>1</nnid>
<name>a2</name>
</table2>
<table2>
<nid>6</nid>
<nnid>1</nnid>
<name>a3</name>
</table2>
<table2>
<nid>7</nid>
<nnid>2</nnid>
<name>b1</name>
</table2>
<table3> <!--形式二-->
<t nid="1" nnid="11" name="aaaaaa">AAAAAA</t>
<t nid="2" nnid="22" name="bbbbbb">BBBBBB</t>
<t nid="3" nnid="33" name="cccccc">CCCCCC</t>
</table3>
</NewDataSet>
//inddex.html
<script language="javascript">
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("temp.xml");
var xml = xmlDoc.documentElement;
var xmlTalbe = xml.getElementsByTagName("table");
var xmlTalbe2=xml.getElementsByTagName("table2");
var xmlTalbe3=xml.getElementsByTagName("table3");
//alert(xml.getElementsByTagName("nid")[0].childNodes[0].nodeValue);
//document.write(xml.getElementsByTagName("name")[i].childNodes[0].nodeValue);
//解析xml的值
for(var i=0;i<xmlTalbe.length;i++){
document.write(xmlTalbe[i].getElementsByTagName("nid")[0].childNodes[0].nodeValue);
document.write(xmlTalbe[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
}
//通过对xml的值取相应的xml对象
document.write("<br>");
alert(xmlTalbe2.length);
for(var i=0;i<xmlTalbe2.length;i++){
if(xmlTalbe2[i].getElementsByTagName("nnid")[0].childNodes[0].nodeValue==1){
document.write(xmlTalbe2[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
}
}
//alert(xmlTalbe3[0].getElementsByTagName("t")[1].childNodes[0].nodeValue);
// getAttribute("nid")
//xml 对属性的解析
document.write("<br>");
var obj = xmlTalbe3[0].getElementsByTagName("t");
alert(obj.length);
for(var i=0;i<obj.length;i++){
document.write(obj[i].getAttribute("nid")+"<br>");
document.write(obj[i].getAttribute("nnid")+"<br>");
document.write(obj[i].getAttribute("name")+"<br>");
document.write(obj[i].childNodes[0].nodeValue+"<br>");
}
</script>