【问题标题】:Reading XML file nodes in VBSCript在 VBSCript 中读取 XML 文件节点
【发布时间】:2013-10-09 01:39:11
【问题描述】:

我有一个以下格式的 XML 文件..我在这里做的是遍历公共节点中的文件并循环它们..问题是公共节点内的 cmets 抛出一个错误,上面写着 getAttribute ("name") 不受支持..有人可以告诉我如何遍历子节点并避免阅读注释行。

Set objNodeList = xmlDoc.getElementsByTagName("Common")

For each comNodeItem in objNodeList

   On Error Resume Next
    for each fileNodeItem in comNodeItem.ChildNodes        

        fileName = fileNodeItem.getAttribute("name")   



  next

    <Common>
        <!-- Test Comment -->
        <file name="Test1.css"/>
            <file name="Test2.css"/>
    </Common>
    <Common>
        <!-- Test Comment -->
        <file name="Test3.css"/>
            <file name="Test4.css"/>
    </Common>

【问题讨论】:

  • 请描述您要解决的实际问题,而不是您认为的解决方案。为什么你认为你需要处理按父节点分组的子节点?

标签: vbscript


【解决方案1】:

你可以考虑试试下面的代码sn-p。

Set xmlDoc = CreateObject("MSXML.DomDocument")
xmlDoc.LoadXML "<Common><!-- Test Comment --><file name='Test1.css'/><file name='Test2.css'/></Common>"
For Each xmlFile in xmlDoc.selectNodes("//file")
    MsgBox xmlFile.getAttribute("name")
Next

【讨论】:

  • 它工作不正常......它所做的是忽略父节点并将所有子节点一起处理..意思而不是处理 test1 和 test2.css 然后 test3 和 test4.css 它是一起处理所有 4 个。
  • 我刚刚用我的完整测试 sn-p 更新了我的答案,它可以工作。没有“一起处理所有 4 个”之类的东西:每个节点都单独处理。使用 XPath,您不需要遍历所有文档结构,但您可以通过直接搜索您需要的内容来加快速度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多