【问题标题】:Looping through XML file using VBScript使用 VBScript 循环遍历 XML 文件
【发布时间】:2013-07-05 04:26:01
【问题描述】:

我在下面有一个 XML 文件..我想遍历这个文件并提取节点节点值,例如 for node 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

【问题讨论】:

    标签: vbscript


    【解决方案1】:

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

    检查objXMLDoc.parseError

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

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


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

    • 根节点是/(本质上,根节点就是文档)
    • 您的文档元素是&lt;common&gt;
    • 这意味着:objXMLDoc.documentElement.getElementsByTagName("common") 将为空

    【讨论】:

    • 我检查了 objXMLDoc.parseError 并得到了这个数字 -1072896659 ...不知道我在这里做错了什么
    • 这意味着您的 XML 文档格式不正确。解析错误中有错误描述,阅读the documentation
    • 是的,我的错误..感谢您的帮助..忘记关闭子元素。
    猜你喜欢
    • 2013-10-24
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多