這個腳本:
Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject")
Dim sFSpec : sFSpec = oFS.GetAbsolutePathName("..\testdata\xml\so11781815.xml")
Dim oXML : Set oXML = CreateObject("Msxml2.DOMDocument")
oXML.setProperty "SelectionLanguage", "XPath"
oXML.async = False
oXML.load sFSpec
If 0 = oXML.parseError Then
WScript.Echo oXML.xml
WScript.Echo "-----------------"
Dim sXPath : sXPath = "/project/scenes/scene/rootgroup/nodelist/module[@name=""Write_1080P""]/option/disabled"
Dim ndFnd : Set ndFnd = oXML.selectSingleNode(sXPath)
If ndFnd Is Nothing Then
WScript.Echo sXPath, "not found"
Else
WScript.Echo ndFnd.nodeName, ndFnd.getAttribute("val")
WScript.Echo "-----------------"
ndFnd.setAttribute "val", "disabled"
WScript.Echo oXML.xml
End If
Else
WScript.Echo oXML.parseError.reason
End If
輸出:
<project>
<scenes>
<scene>
<rootgroup>
<nodelist>
<module type="WRITE" name="Write_1080P">
<option>
<disabled val="true"/>
</option>
</module>
</nodelist>
</rootgroup>
</scene>
</scenes>
</project>
-----------------
disabled true
-----------------
<project>
<scenes>
<scene>
<rootgroup>
<nodelist>
<module type="WRITE" name="Write_1080P">
<option>
<disabled val="disabled"/>
</option>
</module>
</nodelist>
</rootgroup>
</scene>
</scenes>
</project>
展示瞭如何使用.setProperty "SelectionLanguage", "XPath"
確保XPath查詢處理,如何查詢的屬性值(..t/module[@name=""Write_1080P""]/opt..
),以及如何讀取(.getAttribute("val")
)和寫入(.setAttribute "val", "disabled"
)屬性。
P.S. 看看here看看你如何尋找/更改文本(具有基本相同的代碼)。
[使用VBS搜索XML並更改值]的可能重複(http://stackoverflow.com/questions/11726266/searching-xml-using-vbs-and-changing-a-value) – 2013-03-13 22:00:19