【发布时间】:2020-04-04 21:23:39
【问题描述】:
我在检索 1 个 XML 文件的节点值时遇到问题。对于除此之外的所有其他 XML 文件,它都可以使用。 我已经检查过是否加载了 XML 并且确实如此。我可以在本地窗口中找到这些值,因此它肯定会读取 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
对于其他 XML 文件,我在末尾添加了 /text(),因为每个节点值都有一行额外的文本。
<?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" />
【问题讨论】:
-
您的代码似乎不完整?
i这里是什么?当你运行你的代码时究竟会发生什么——你得到一个错误吗?如果是,那是什么? -
当我没有将
iin 放入时,它在其他脚本中不起作用。它实际上只是0错误出现在msgbox行“对象变量或未设置块变量”当我在SelectNodes字符串中输入错误时,我以前的XML 文件中出现了类似错误。 @Partfait 我将代码添加为代码。这是你的意思吗? -
仅供参考,如果我将鼠标悬停在 msgbox 上,它会返回“empty”
-
使用“Microsoft.XMLDOM”不是最佳实践 - 请参阅 here。尝试改用“Msxml2.DOMDocument.6.0”,但请注意,这会将
SelectNodes语句切换为使用 XPath,而不是当前代码默认使用的 XSL 模式 - 请参阅 this answer 了解主要区别。请注意,XPath 集合中的第一项是项 1,而 XSL 模式从项 0 开始集合 -
嗯,感谢您的提醒,当我需要再次使用 XML 时,我会记住这一点。现在我会坚持使用 XMLDOM,我已经检索了 100 多个节点,所以要全部更改它们会是很多工作