【问题标题】:DOMDocument60 Node ListDOMDocument60 节点列表
【发布时间】:2021-07-22 16:53:09
【问题描述】:

我在尝试正确填充节点列表时遇到问题。

Dim xmlDoc As New MSXML2.DOMDocument60

Set xmlNodeLst = xmlDoc.selectNodes("TagToGetNodes")

这个问题是XML标签本身看起来像这样:

TagToGetNodes xmlns="http://www.randomlink.com/TagToGetNodes"

如果这不在标签中,xmlns="http://www.randomlink.com/TagToGetNodes - 上面的代码 100% 的时间都有效。有了标签,每次都失败。

有什么想法吗?

【问题讨论】:

  • 问题是xmlns 的属性名称。将其命名为其他名称,或者按照您提到的方式将其完全删除,代码可以正常工作。
  • 唯一的回扣是我从第三方获取 XML - 我无法控制属性。我可以将 XML 编辑为文本文件并消除该属性。必须有更好的方法

标签: xml vb6


【解决方案1】:

您的示例节点有一个命名空间。如果你给命名空间一个名字:

xmlDoc.setProperty "SelectionNamespaces", "xmlns:YourName='http://www.randomlink.com/TagToGetNodes'"

然后您可以修改您的 XPath 以包含允许选择节点的给定名称:

Set xmlNodeLst = xmlDoc.selectNodes("YourName:TagToGetNodes")

【讨论】:

  • 这给了我 TagToGetNodes 的值,但不是该节点列表中的标签列表。 TagToGetNotes 是第一个 - 其中包含 CompletionCode、ErrorTag、HostResponse。我无法获取节点
【解决方案2】:

感谢您的帮助。你肯定给我指明了正确的方向。

我按照您所说的对命名空间进行了操作。我只需要修复我的循环。我最终遍历了命名空间的 .childNodes 并且效果很好。

感谢您的帮助。你是救生员

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多