※ ChatGPTを利用し、要約された質問です(原文:vbsでxmlの属性を追加したい)
vbsでXMLの属性を追加する方法とは?
このQ&Aのポイント
Vista以降の更新プログラム(msuファイル)を展開して出てくるXMLファイルに属性を追加する方法について解説します。
バッチファイルとvbsを組み合わせてXMLに連続的に属性を追加する方法についても説明します。
提供されているXMLのソースコードと変更したい箇所も示し、具体的な記述例も解説します。
Vista以降の更新プログラム(msuファイル)を展開して出てくるXMLファイルに属性を追加して恒久的に適用出来るか試してみたところ、正常に適用でき、恒久化もされていました。
ちょっと本題から外れましたが、そこでバッチファイルとvbsを組み合わせてXMLに連続的にこの変更(属性追加)を加えたいのです。
そのような操作が出来る関数ってあるのでしょうか。
出来れば記述の例もご教授頂ければ嬉しいです。
以下にXMLのソースと変更したい箇所を書いておきます。
よろしくお願いします。
※追加する前
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<servicing>
<package action="install">
<assemblyIdentity (略)>
<source location=(略)>
</package>
</servicing>
</unattend>
※追加した後
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<servicing>
<package action="install" permanence="permanent"> ←ここに要素を追加
<assemblyIdentity (略)>
<source location=(略)>
</package>
</servicing>
</unattend>
お礼
http://stackoverflow.com/questions/3499734/how-to-add-a-attribute-in-existing-xml-using-vbscript ↑こちらのサイトも参考にさせて頂いてvbsを組んでみたところ、成功しました。 遅くなりましたがお礼申し上げます。 ありがとうございました。 参考までにvbsのソースを置いておきます。 Dim xmlDoc Dim xmlNode Dim addNode 'cmdの引数を使ってXMLを読み込む '(例:cscript //nologo xmlrep.vbs "C:\Test\Windows6.0-KB900000.xml") strFileName = WScript.Arguments(0) Set xmlDoc = WScript.CreateObject("MSXML2.DOMDocument") xmlDoc.async = False xmlDoc.load strFileName Set xmlNode = xmlDoc.selectSingleNode("/unattend/servicing/package") Set addNode = xmlDoc.createAttribute("permanence") addNode.Value = "permanent" xmlNode.attributes.setNamedItem(addNode) xmlDoc.Save WScript.Arguments(0) Set xmlDoc = Nothing