获取 XML 中的节点值

Wes*_*ley 0 xml excel vba

我在检索 1 个 XML 文件的节点值时遇到问题。对于除此之外的所有其他 XML 文件,它都可以使用。我已经检查过 XML 是否已加载并且确实加载了。我可以在 locals 窗口中找到这些值,因此它肯定会读取 XML 文件。检索此节点值的问题。

我用于其他文件的代码:

Set oXMLFile = CreateObject("Microsoft.XMLDOM")
XMLFileName = Dir(L_Folder & "\*" & Control & "*.xml")

oXMLFile.Load L_Folder & "\" & XMLFileName


Set NameNode = oXMLFile.SelectNodes("/DataSetCollection/DataSet/Data/Lot/LotRunGenKey")

MsgBox NameNode(i).NodeValue
Run Code Online (Sandbox Code Playgroud)

对于我/text()在最后添加的其他 XML 文件,因为每个节点值都有一个额外的文本行。

XML 文件示例 在此处输入图片说明

<?xml version="1.0"?>
<DataSetCollection xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <DataSet Name="" Type="" Version="11.2.0" CreateTime="20200220190104">
    <Data IsVirtual="false">
      <Lot ID="" LotRunGenKey="4bccbfaf-0868-4240-a94f-724d9a79b102" ARPFlag="1" />
Run Code Online (Sandbox Code Playgroud)

Par*_*ait 5

因为LotRunGenKey是一个属性而不是一个 XML 节点,所以使用该.Attributes属性:

Set NameNode = oXMLFile.SelectNodes("/DataSetCollection/DataSet/Data/Lot")

MsgBox NameNode(0).Attributes.getNamedItem("LotRunGenKey").Text
Run Code Online (Sandbox Code Playgroud)