1

我在下面有一个 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 开始循环,但我收到一个错误 Object required: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
4

1 回答 1

4

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

检查objXMLDoc.parseError

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

在更一般的说明中,您不应该在documentElement未检查它们是否有效的情况下使用对象引用。那是不好的风格。


提示:根节点文档元素是两个不同的东西。

  • 根节点是/(本质上,根节点就是文档)
  • 您案例中的文档元素是<common>
  • 这意味着:objXMLDoc.documentElement.getElementsByTagName("common")将为空
于 2013-07-05T05:42:42.423 回答