我有以下XML文件:
<TOOLING>
<TOOLENVIRONMENT>
<TOOL>
<TOOLSNAME>MyABCVersion1</TOOLSNAME>
<TOOLSVERSION>12.34.56</TOOLSVERSION>
</TOOL>
<TOOL>
<TOOLSNAME>MyABCVersion2</TOOLSNAME>
<TOOLSVERSION>23.45.67</TOOLSVERSION>
</TOOL>
<TOOL>
<TOOLSNAME>MyABCVersion3</TOOLSNAME>
<TOOLSVERSION>34.56.78</TOOLSVERSION>
</TOOL>
</TOOLENVIRONMENT>
</TOOLING>
我想通过使用<TOOLS_VERSION>
从XML文件中获取<TOOLS_NAME>
的值。这意味着我想在XML文件中搜索“ MyABCVersion1”并检索值“ 12.34.56”。检索后,我想用新版本名称替换版本名称,该名称将在参数中提供。
我已经尝试通过获取文件的第一个标签来尝试以下脚本,但是将来如果顺序更改不起作用:
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.Async = False
objXMLDoc.Load("autorun.xml")
WScript.Echo objXMLDoc.Xml
Set ElemList = objXMLDoc.GetElementsByTagName("TOOLSNAME")
plot = ElemList.item(0).Text
WScript.Echo plot
Set ElemList = objXMLDoc.getElementsByTagName("TOOLSNAME")
plot = ElemList.Item(1).Text
WScript.Echo plot
答案 0 :(得分:0)
最好用XPath表达式来完成。另外,Microsoft.XMLDOM
也已弃用。请改用Msxml2.DOMDocument
。
Set objXMLDoc = CreateObject("Msxml2.DOMDocument.6.0")
objXMLDoc.Async = False
objXMLDoc.Load("autorun.xml")
xpath = "//TOOL[./TOOLS_NAME/text()='MyABCVersion1']/TOOLS_VERSION"
Set node = objXMLDoc.SelectSingleNode(xpath)
node.Text = WScript.Arguments.Item(0)