用javascript读取XML
在javascript中读取XML是通过XMLDOM对象来实现的,具体的例子如下:
student.xml文件如下:
student.xml:
<?xml version="1.0" encoding="utf-8" ?>
<students>
<student>
<name type="fullname">zhangsan</name>
<sno>36452</sno>
<sex>male</sex>
<age>23</age>
</student>
<student>
<name type="xiaoming">lisi</name>
<sno>36453</sno>
<sex>female</sex>
<age>23</age>
</student>
<student>
<name type="alias">wangwu</name>
<sno>36454</sno>
<sex>female</sex>
<age>20</age>
</student>
<student>
<name type="nickname">mazi</name>
<sno>36432</sno>
<sex>man</sex>
<age>10</age>
</student>
</students>
下面是访问该XML的JS代码:
 
var xmlURL = "student.xml"
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false; xmlDoc.load(xmlURL);
getColumnList(xmlDoc);
 
function getColumnList(xmlDoc){
var rootNode = xmlDoc.documentElement;
var rtnList = new Array();
var childNodes = rootNode.childNodes;
var nameType;
var innerHtm;
var subChildNodes;
for(var i = 0; i < childNodes.length; i++){
  subChildNodes = childNodes[i].childNodes;
  stu.insertRow(stu.rows.length);
  for(var k = 0; k < subChildNodes.length; k++){
    stu.rows.item(stu.rows.length - 1).insertCell(k); 
    innerHtm = subChildNodes[k].text;
    if(subChildNodes[k].nodeName == "name"){
      nameType = subChildNodes[k].attributes.getNamedItem("type").text;
    innerHtm += "("+nameType+")"; 
   }
  stu.rows.item(stu.rows.length - 1).cells.item(k).innerHTML = innerHtm;
  }  
}
}