位置:海鸟网 > IT > JavaScript >

Javascript+DOM访问XML文件中的数据

    1.生成XML文件。
        在ADO里,用Recordset.Save方法可以保存查询内容至指定XML文件,这样生成的文件里面有很多内容是关于数据表的属性的,即<s:Schema></s:Schema>节点内容。我们需要的是<rs:data></rs:data>节点的内容。结构大体如下:Data.xml
        <xml ...>
        <s:Schema>
                ...
        </s:Schema>
        <rs:data>
                <z:row PositionID='1001' PositionName='fdsafsd' CompanyID='1' PMID='1001' />
                <z:row PositionID='1002' PositionName='.NET Developer' CompanyID='2' PMID='1002' />
        </rs:data>
        这里的<z:row />即为一个数据行,下一步就是显示这部分内容。
2.LoadXML文件。
 <SCRIPT language=javascript>
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
var currNode;
xmlDoc.async = false;
xmlDoc.load("Data.xml");
if (xmlDoc.parseError.errorCode != 0) {//如果打开文件出错
   var myErr = xmlDoc.parseError;
   document.write("You have error " + myErr.reason);
}
else
{
 document.write("<hr size=1>");
   xmlDoc.setProperty("SelectionLanguage", "XPath");
   currNode = xmlDoc.documentElement.childNodes[1];//取得<rs:data>部分
   alert(currNode.childNodes[0].attributes[0].value);//测试结果

    for(i=0;i<currNode.childNodes.length;i++) //遍历每个'数据行'
   {
  for(j=0;j<currNode.childNodes[i].attributes.length;j++)//遍历行的每个属性
  {
   document.write(currNode.childNodes[i].attributes[j].name + " : " + currNode.childNodes[i].attributes[j].value + "<BR>");
  }
document.write("<hr size=1>");
   }
}
</script>