概要 ターゲットは、WEB 上にあるサンプルXML です。その中にある param-value の中の一つを書き換えます( 中の値によって対象かどうかを判断しています ) objXML.async = False を指定しないと、処理中のどの時点で XML ドキュメントが有効になるかを判断できません。VBScript はイベント処理がオブジェクトに依存するので、このようにしています。 ※ VBScript は SHIFT_JIS で記述されていますが、XML を UTF-8 で記述しているので、オブジェクト的に問題ありません。書き出した sample.xml も utf8n で保存されています。
' オブジェクト作成 Set Fso = CreateObject("Scripting.FileSystemObject") Set objXML = CreateObject("Msxml2.DOMDocument.6.0") ' WEB からのデータ取得をその場で完了させる objXML.async = False ' スクリプトのあるディレクトリ strCurDir = WScript.ScriptFullName Set obj = Fso.GetFile( strCurDir ) Set obj = obj.ParentFolder strCurDir = obj.Path ' XML を読み込み objXML.load( "https://lightbox.sakura.ne.jp/demo/sample.xml" ) ' 全体の表示 MsgBox( objXML.xml ) Set ParamValue = objXML.getElementsByTagName("param-value") For I = 0 to ParamValue.length - 1 if ParamValue.item(I).firstChild.nodeValue = "UTF8N で保存してます" then ' 置き換え ParamValue.item(I).firstChild.nodeValue = "本文を変更しました" Exit For end if Next ' XML を保存 objXML.save( strCurDir & "\sample.xml" )
MsgBox の結果
<?xml version="1.0" encoding="UTF-8"?> <note> <param-value>あなた</param-value> <param-value>私</param-value> <param-value>XMLサンプル</param-value> <param-value>UTF8N で保存してます</param-value> </note>
|
【VBScriptの最新記事】
- 指定した位置でレジストリエディタを開く為の VBScript をダウンロードします
- VBScript(WSH) と PHP(7.3) で氏名をランダムに作成
- VBScript : XCOPYで新しいファイルのみバックアップする為のスクリプトを作成するスクリプト
- VBScript + PowerShell : PowerShell がファイルを開くダイアログで取得したパスをテキストファイル経由で VBScript に戻して使用する
- HTA : 指定したキーでレジストリエディタを開く
- WSH(VBScript) : 指定したキーでレジストリエディタを開く
- VBScript : WEB上のHTMLを使用して、InternetExplorer.Application でパスワード入力を実装する
- VBS : 正規表現で、URL リストの中のドメイン部分のみを取り出す
- 文字列を指定してその名前の変数でオブジェクトを作成する : WEB に VBScript ライブラリ
- 実行中のスクリプトのタイプを知る : WEB に VBScript ライブラリ
- VBS : FileZilla用誰にでも使える拡張子ランチャー