PDA

View Full Version : Change XML element value


teognost
02-13-2012, 01:01 PM
If I need to change the value of 'interface' node from an xml doc like below -what is the VBScript syntax ?


<nightlytrunk>
<year>12</year>
<quarter>1</quarter>
<interface>1107</interface>
<build>0</build>
<builddescription>2012 M1</builddescription>
<buildnumber>0</buildnumber>
<produceinstallkits>1</produceinstallkits>
</nightlytrunk>
</intradaytrunk>

This one from your sample is working for an attribute:
Set elem = doc.selectSingleNode("appSettings/add[[@key='" & key & "']]")
elem.setattribute "value", value

but cannot manage to set interface node from 1107 to 1108 .

kinook
02-13-2012, 01:39 PM
See attachment.

teognost
02-14-2012, 08:02 AM
Thanks.
Unfortunately I cannot use the native VBP "Write XML" step ,therefore I use a VBScript step .

Finally I found the proper way :

Set msxml = CreateObject("MSXML2.DOMDocument.6.0")
msxml.async = False
msxml.load "%VERSION_FILE%"

Set bt = vbld_AllMacros()("BUILD_TYPE")
Set vi = vbld_AllMacros()("VERS_INTERFACE")
Set vix = vbld_AllMacros()("VERS_INTERFACE_XMLNODE")



' update some attributes
UpdateNode msxml, bt.Value ,vix.Value ,vi.Value

' save the changes back out
msxml.save "%VERSION_FILE%"

' function to update the value of a node
Function UpdateNode(doc, bldtype,node, value)

Set elem = doc.selectSingleNode("builds/"&bldtype&"/"&node)
elem.text =value
wscript.Echo "Node 'builds/"&bldtype&"/"&node&"' updated to:"&elem.text

End Function