私は、VBS を使用して XML ノードの 2 つの属性を変更するためのクリーンな方法を Web のいたるところで探していました (残念ながら、このクライアントでこれを行う唯一の選択肢です)。XML には、次のようなノードがあります。
<lot id="ajhgkhga" lot="1" block="1" section="73R">
これを次のように変更する必要があります (残りの XML ドキュメントは保持します)。
<lot id="ajhgkhga" lot="1" block="22" section="55">
私は 1 日中 VBS をハックしてきましたが、現在の状況は次のとおりです。
Dim objXMLDoc
Dim objXMLElement
Dim objXMLNodeList
Dim numObjXMLNodeList
Dim i
Dim lot
Dim section
Dim attr
set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = "false"
objXMLDoc.load("section73R.xml")
Set objXMLNodeList = objXMLDoc.getElementsByTagName("lot")
numObjXMLNodeList = objXMLNodeList.length
For i = 0 to numObjXMLNodeList - 1
' current value of the block and section attributes of the lot element
block = objXMLNodeList.item(i).getAttribute("block")
section = objXMLNodeList.item(i).getAttribute("section")
'Wscript.Echo block & " " & section
' new value of the block and section attributes of the lot element
objXMLNodeList.item(i).setAttribute "block", "22"
objXMLNodeList.item(i).setAttribute "section", "55"
Next
これにより、上記のエラーがスローされます。私の VBS チョップは、この時点ではほとんど存在しません。長い間行っていません。上記のコードは、属性を読み取ろうとするためだけに設計されています。値を置き換えることはそれほど難しくないと思いました。
これらの値を置き換える方法を実際に理解するのを手伝ってくれる人はいますか? そうすることで、このスクリプトで私がどれだけ離れているかを教えてください。前もって感謝します!
編集: 2 つの属性値を取得できるようになりました (上記のコード変更を参照)。ここで必要なのは、新しい属性値を XML ファイルに書き込む方法だけで、これで完了です。誰でも私に何か指針を与えることができますか?
編集#2:属性値を取得でき、上記のコードを編集すると、すぐに解決できました。