使用SelectSingleNode通过XML节点进行VBA循环

时间:2016-04-15 23:22:35

标签: xml excel vba loops while-loop

我正在尝试使用循环更新.xml文件中的节点值。

显示的oXMlFile.SelectSingleNode行正确更新了单个节点,但我不知道如何修改代码,以便我可以遍历所有节点并更新值。

任何帮助都将不胜感激。

Set oXMLFile = CreateObject("Microsoft.XMLDOM")
oXMLFile.Load (ConfigFile)

'Update Node Attributes

Dim ii, TotChan As String
 ii = 0
 TotCh = 500

 Do While (ii < TotCh - 1)


Set CalibrationDateTimeNode=oXMLFile.SelectSingleNode("/HConfig/Signal[0]/CalibrationDateTime")

CalibrationDateTimeNode.Text = "2016-04-16"

 ii = ii + 1
 Loop

1 个答案:

答案 0 :(得分:1)

我不太确定你到底需要什么,但要遍历xml节点,请使用:

Dim calibrationDateTimeNode As IXMLDOMNode
Dim colNodes As IXMLDOMNodeList

Set colNodes = oXMLFile.selectNodes("/HConfig/Signal[0]/...WhateverYouNeed")
For Each CalibrationDateTimeNode In colNodes
   CalibrationDateTimeNode.Text = "2016-04-16"
Next

SelectNodes命令可以选择节点列表,然后可以迭代其元素。使用for each比使用for-do更容易。如果我没弄错的话,更不用说更快了。