使用具有相似名称的VBS更改XML中的节点值

时间:2016-11-02 10:25:59

标签: vbscript

我正在面对这一挑战,使用VBScript更改具有相同名称的xml文件中的节点值。以下是XML示例:

- <MappingData>
  	<Name>Name 1</Name> 
	- <ValueField FieldName="Name 2">
		<CharValue>Value 1</CharValue> 
		</ValueField>
	- <ValueField FieldName="Name 3">
		<CharValue>Value 1</CharValue> 
		</ValueField>

我的要求是更改标记

的两次出现的值

<CharValue>

。 如果这些标签中有任何属性,我本可以这样做,但在这种情况下,我被卡住了。

我尝试了以下代码,但无法获得我需要的代码。

Set NodeList = objXMLDoc.documentElement.selectNodes("//MappingData/ValueField/CharValue") 
For i = 0 To NodeList.length - 1
    node.Text = "Value 1"
Next

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

尝试以下代码

Set xDoc = CreateObject( "Msxml2.DOMDocument.6.0" )
xDoc.setProperty "SelectionLanguage", "XPath"
xDoc.async = False
xDoc.load "test.xml"

Set nNodes = xDoc.selectNodes("//MappingData/ValueField/CharValue")
For i = 0 To nNodes.Length - 1
  nNodes(i).text = "Changed value " & i
Next

xDoc.Save "test.xml"