XML Parse

Sub parseXML()

Dim xmlString As String

xmlString = "<?xml version=""1.0""?>" _

& "<books>" _

& "<book id=""1""><name>BOOK1</name></book>" _

& "<book id=""2""><name>BOOK2</name></book>" _

& "</books>"

Dim XmlDoc As DOMDocument 'xmlデータ用変数

Dim ReadStatus As Boolean '読み込み状態用

Dim SelNode As IXMLDOMNodeList

Set XmlDoc = CreateObject("Microsoft.XMLDom")

XmlDoc.async = False

ReadStatus = XmlDoc.LoadXML(xmlString)

If ReadStatus Then

Debug.Print "status: " & 1

Else

Debug.Print "status: " & 2

End If

Set SelNode = XmlDoc.SelectNodes("/books/book")

Debug.Print "number of book: " & SelNode.length

Dim size As Integer

size = SelNode.length

For n = 0 To size - 1

Debug.Print "id=" & SelNode.Item(n).Attributes(0).NodeValue

Debug.Print "xml=" & SelNode.Item(n).SelectSingleNode("name").XML

Debug.Print "name=" & SelNode.Item(n).SelectSingleNode("name").text

SelNode.NextNode

Next

End Sub

実行結果

status: 1

number of book: 2

id=1

xml=<name>BOOK1</name>

name=BOOK1

id=2

xml=<name>BOOK2</name>

name=BOOK2

tags

VBA XML Parse DOM