2016-04-15 52 views
0

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

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

我不太清楚你到底需要,但主要是通过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可以selet节点列表,然后你可以遍历其元素。每个使用一个使它比一个do-while更容易。更不用说更快,如果我没有错。

+0

谢谢,这就是我所需要的,现在一切正常。 – jmjaeckels