我下面有一个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
答案 0 :(得分:4)
您的错误Object required:Root
表示objXMLDoc.load()
期间存在解析错误(因为这是documentElement
设置为Nothing
的唯一情况)。
检查objXMLDoc.parseError
。
实际上,在加载XML文档后,您必须始终检查是否存在解析错误。
更一般地说,你不应该使用documentElement
之类的对象引用而不检查它们是否有效。那是不好的风格。
提示:根节点和文档元素是两回事。
/
(基本上,根节点是文档)<common>
objXMLDoc.documentElement.getElementsByTagName("common")
将为空