DOMを利用してXMLデータへアクセス
要素内を検索し、目的となるデータを探して得る方法
- Dim objDOM, rtResult
- Set objDOM = WScript.CreateObject("MSXML2.DOMDocument")
- rtResult = objDOM.load("Sample.xml")
- If rtResult Then
- procDispDatas objDOM.childNodes
- Else
- MsgBox "XMLオブジェクトの作成に失敗しました。"
- End If
- Set objDOM = Nothing
- Sub procDispDatas(objNode)
- Dim obj
- For Each obj In objNode
- If obj.nodeType = 3 and obj.parentNode.nodeName = "title" Then
- MsgBox obj.parentNode.nodeName & " : " & obj.nodeValue
- End If
- If obj.hasChildNodes Then
- procDispDatas obj.childNodes
- End If
- Next
- End Sub
要素内を検索し、すべてのデータを得る方法
- Dim objDOM, rtResult
- Set objDOM = WScript.CreateObject("MSXML2.DOMDocument")
- rtResult = objDOM.load("Sample.xml")
- If rtResult = True Then
- procDispDatas objDOM.childNodes
- End If
- Set objDOM = Nothing
- Sub procDispDatas(objNode)
- Dim obj
- For Each obj In objNode
- If obj.nodeType = 3 Then
- MsgBox obj.parentNode.nodeName & " : " & obj.nodeValue
- End If
- If obj.hasChildNodes Then
- procDispDatas obj.childNodes
- End If
- Next
- End Sub
XPath式の利用
- Dim objDOM, rtResult, nodeList, obj
- Set objDOM = WScript.CreateObject("MSXML2.DOMDocument")
- rtResult = objDOM.load("Sample.xml")
- If rtResult = True Then
- Set nodeList = objDOM.documentElement.selectNodes("/books/item/title")
- For Each obj In nodeList
- MsgBox obj.nodeName & " : " & obj.text
- Next
- End If
- Set objDOM = Nothing
備考
<?xml version="1.0" encoding="utf-8" ?>
の場合
CreateObject("MSXML2.DOMDocument")
<?xml version="1.0" encoding="Shift_JIS" ?>
の場合
CreateObject("MSXML.DOMDocument")
XML文書の例
- <?xml version="1.0" encoding="Shift_JIS" ?>
- <books>
- <item>
- <title>XML入門-第1巻</title>
- <price>2500</price>
- <isbn>1-1234-5678-X</isbn>
- <authors>
- <author>西谷 亮</author>
- </authors>
- <imgfile>1-1234-5678-X.gif</imgfile>
- </item>
- <item>
- <title>XML入門-第2巻</title>
- <price>2200</price>
- <isbn>1-1234-5678-0</isbn>
- <authors>
- <author>西谷 亮</author>
- <author>山田 太郎</author>
- </authors>
- <imgfile>1-1234-5678-0.gif</imgfile>
- </item>
- <item>
- <title>XML入門-第3巻</title>
- <price>3600</price>
- <isbn>1-1234-5678-1</isbn>
- <authors>
- <author>西谷 亮</author>
- <author>鈴木 次郎</author>
- </authors>
- <imgfile>1-1234-5678-1.gif</imgfile>
- </item>
- </books>
* CreateObject について
| VBA の時 |
Set objDOM = WScript.CreateObject("MSXML2.DOMDocument") |
| ASP の時 |
Set objDOM = Server.CreateObject("MSXML2.DOMDocument") |
| VB の時 |
Set objDOM = CreateObject("MSXML2.DOMDocument") |
VBScript とは
Visual Basic (VB) のサブセット(簡易版)で、 マイクロソフト社製のスクリプト言語である。 Microsoft Windows上やInternet Information Server(IIS)上で動作する。
VBScript (Microsoft Visual Basic Scripting Edition) は VisualBasicの構文を真似てつくられた、 Microsoft Windowsのネイティブ スクリプト言語である。ランタイムとして、ASP や WSH があり、 主な用途として、
- Active Server Pages (ASP) などを使用したサーバサイドスクリプティング処理
- Windows Script Host (WSH) を利用したWindows上でのネイティブ・スクリプト
- Internet Explorerを使用したクライアントサイドスクリプティング処理
- HTML Applications(HTA)アプリケーション
が挙げられる。 ただし、WWWクライアントスクリプトとしては、対応するブラウザが Windows版のInternet Explorerだけであり、2005年現在ではほとんど使われていない。
HTAやASP、HTML中に組み込まれることが多いが 単体のスクリプトファイルとしておかれる場合、 拡張子は通常.vbsを使用する。