使用VBScript循环遍历XML文件

时间:2013-07-05 04:26:01

标签: vbscript

我下面有一个XML文件..我想循环遍历这个文件并提取节点节点值,比如节点com获取名称值,然后循环2次以获取文件值。

<common>
  <com name="Test1.css">
    <file name="Tech.css">
    <file name="Comp.css"> 
  </com>
  <com name="Test2.css">
    <file name="HR.css">
    <file name="HR2.css"> 
  </com> 
</common>

我开始使用下面的VBScript开始循环,但是我收到了一个错误对象:Root 有人可以看看,告诉我这里做错了什么

选项明确

Dim Root

Set objXMLDoc = CreateObject("Microsoft.XMLDOM") 
objXMLDoc.async = False 
objXMLDoc.load("C:\test\combineXML.xml")    
Set Root = objXMLDoc.documentElement 
WScript.Echo Root
Set NodeList = Root.getElementsByTagName("common")     
For Each Elem In NodeList 
WScript.Echo Elem.text

Next

1 个答案:

答案 0 :(得分:4)

您的错误Object required:Root表示objXMLDoc.load()期间存在解析错误(因为这是documentElement设置为Nothing的唯一情况)。

检查objXMLDoc.parseError

实际上,在加载XML文档后,您必须始终检查是否存在解析错误。

更一般地说,你不应该使用documentElement之类的对象引用而不检查它们是否有效。那是不好的风格。


提示:根节点文档元素是两回事。

  • 根节点是/(基本上,根节点是文档)
  • 您案例中的文档元素为<common>
  • 这意味着:objXMLDoc.documentElement.getElementsByTagName("common")将为空