邪恶八进制信息安全团队技术讨论组's Archiver

pub!1c 2005-11-15 11:55

[转载]Javascript+DOM访问XML文件中的数据实例

原始连接:[url]http://tech.ccidnet.com/art/1077/20051115/372493_1.html[/url]


1、生成XML文件。

在ADO里,用Recordset.Save方法可以保存查询内容至指定XML文件,这样生成的文件里面有很多内容是关于数据表的属性的,即节点内容。我们需要的是节点的内容。结构大体如下:


[code]
Data.xml
  <xml ...>
  <s:Schema>
           ...
  </s:Schema>
  <rs:data>
  <z:row PositionID=&#39;1001&#39;
  PositionName=&#39;fdsafsd&#39;
  CompanyID=&#39;1&#39; PMID=&#39;1001&#39; />
  <z:row PositionID=&#39;1002&#39;
  PositionName=&#39;.NET Developer&#39;
  CompanyID=&#39;2&#39; PMID=&#39;1002&#39; />
      </rs:data>
[/code]



这里的即为一个数据行,下一步就是显示这部分内容。

2.LoadXML文件。

[code]
<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++)
    //遍历每个&#39;数据行&#39;
  {
  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>
[/code]

页: [1]
© 1999-2008 EvilOctal Security Team