このスクリプト:
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"
) する方法を示します。
PSここを
見て、テキストを検索/変更する方法を確認してください(本質的に同じコードを使用)。