Tips - XML

【TOP】

DOM:属性の取得と設定
以下のXML文書(yearJE.xml)を使って属性の操作をしてみます。
属性値の取得にはgetAttributeメソッドを、設定にはsetAttributeメソッドを使い、
属性そのものの削除にはremoveAttributeメソッドを使います。(属性の生成はsetAttributeメソッドでOKです。)
<!-- yearJE.xml --> <?xml version="1.0" encoding="utf-8"?> <year> <month id="01" season="冬"> <japanese>1月</japanese> <english>January</english> <lunar>睦月</lunar> <lunar_kana>むつき</lunar_kana> </month> <month id="02" season="冬"> <japanese>2月</japanese> <english>Feburary</english> <lunar>如月</lunar> <lunar_kana>きさらぎ</lunar_kana> </month> <month id="03" season="春"> <japanese>3月</japanese> <english>March</english> <lunar>弥生</lunar> <lunar_kana>やよい</lunar_kana> </month> <month id="04" season="春"> <japanese>4月</japanese> <english>April</english> <lunar>卯月</lunar> <lunar_kana>うづき</lunar_kana> </month> <month id="05" season="初夏"> <japanese>5月</japanese> <english>May</english> <lunar>皐月</lunar> <lunar_kana>さつき</lunar_kana> </month> <month id="06" season="梅雨"> <japanese>6月</japanese> <english>June</english> <lunar>水無月</lunar> <lunar_kana>みなづき</lunar_kana> </month> <month id="07" season="夏"> <japanese>7月</japanese> <english>July</english> <lunar>文月</lunar> <lunar_kana>ふづき</lunar_kana> </month> <month id="08" season="夏"> <japanese>8月</japanese> <english>August</english> <lunar>葉月</lunar> <lunar_kana>はづき</lunar_kana> </month> <month id="09" season="秋"> <japanese>9月</japanese> <english>September</english> <lunar>長月</lunar> <lunar_kana>ながつき</lunar_kana> </month> <month id="10" season="秋"> <japanese>10月</japanese> <english>October</english> <lunar>神無月</lunar> <lunar_kana>かんなづき</lunar_kana> </month> <month id="11" season="秋"> <japanese>11月</japanese> <english>November</english> <lunar>霜月</lunar> <lunar_kana>しもつき</lunar_kana> </month> <month id="12" season="冬"> <japanese>12月</japanese> <english>December</english> <lunar>師走</lunar> <lunar_kana>しわす</lunar_kana> </month> </year>
スクリプトを以下に示します。
Option Explicit Dim DOM, docRoot, node Set DOM = WScript.CreateObject("Microsoft.XMLDOM") DOM.async = True DOM.load("data\yearJE.xml") Set docRoot = DOM.documentElement Set node = docRoot.selectSingleNode("//month[@id='06']") '6月のseason属性の値を取得 WScript.Echo node.getAttribute("season") '6月のseason属性の値を「夏なのかな。」に変更 Call node.setAttribute("season", "夏なのかな。") '6月のmonth要素に値「鬱陶しい季節」を持つ属性「個人的感想」を作成 Call node.setAttribute("個人的感想", "鬱陶しい季節") WScript.Echo "季節は" & node.getAttribute("season") WScript.Echo "個人的には" & node.getAttribute("個人的感想") DOM.save("data\yearJE2.xml") '6月の「個人的感想」属性を削除 Call node.removeAttribute("個人的感想") '6月のseason属性を削除 Call node.removeAttribute("season") DOM.save("data\yearJE3.xml") Set node = Nothing Set docRoot = Nothing Set DOM = Nothing
スクリプトの途中で保存したyearJE2.xmlとyearJE3.xmlの6月部分を以下に示します。
<!-- yearJE2.xml --> <month id="06" season="夏なのかな。" 個人的感想="鬱陶しい季節"> <japanese>6月</japanese> <english>June</english> <lunar>水無月</lunar> <lunar_kana>みなづき</lunar_kana> </month>
<!-- yearJE3.xml --> <month id="06"> <japanese>6月</japanese> <english>June</english> <lunar>水無月</lunar> <lunar_kana>みなづき</lunar_kana> </month>
【戻る】