- ベストアンサー
VBAでxmlから特定の文字を変数に入れたい
- VBAからXMLを取得する方法を検索し、取得したXMLの特定の部分を変数に格納する方法を知りたいです。
- 上記のVBAコードでは、取得したXMLを一行ずつ表示するだけであり、<description>タグで囲まれた部分を変数に格納する方法がわかりません。
- 解説を検索しましたが、理解できず困っています。VBAでXMLの特定の部分を変数に格納する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
スレ主さんのコードを元にちょこっと書き直してみました。 変数名、オブジェクト名等は適当ですが、動作確認はして <description>の値が取れることは確認しました。 dumpDomDoc関数は不要だったので消しました。 ■サンプル1 Sub httpRequest() Dim HttpReq As MSXML2.XMLHTTP Dim DomDoc As MSXML2.DOMDocument Dim targetURL As String Dim xmlNodeList As IXMLDOMNodeList ←追加 Dim value As String ←追加 targetURI = "http://www.drk7.jp/weather/xml/14.xml" 'HTTP GET Set HttpReq = CreateObject("MSXML2.XMLHTTP") HttpReq.Open "GET", targetURI, False HttpReq.send (Null) 'XML PARSE Set DomDoc = CreateObject("MSXML2.DOMDocument") DomDoc.LoadXML (HttpReq.responseText) Set xmlNodeList = DomDoc.selectNodes("weatherforecast/description") ←追加 value = xmlNodeList(0).Text ←追加 Set HttpReq = Nothing Set DomDoc = Nothing End Sub またweatherforecastとdescriptionの指定を分けたい場合は、 ■サンプル2 Sub httpRequest() Dim HttpReq As MSXML2.XMLHTTP Dim DomDoc As MSXML2.DOMDocument Dim targetURL As String Dim xmlNodeList1 As IXMLDOMNodeList ←追加 Dim xmlNodeList2 As IXMLDOMNodeList ←追加 Dim value As String ←追加 targetURI = "http://www.drk7.jp/weather/xml/14.xml" 'HTTP GET Set HttpReq = CreateObject("MSXML2.XMLHTTP") HttpReq.Open "GET", targetURI, False HttpReq.send (Null) 'XML PARSE Set DomDoc = CreateObject("MSXML2.DOMDocument") DomDoc.LoadXML (HttpReq.responseText) Set xmlNodeList1 = DomDoc.selectNodes("weatherforecast") ←追加 Set xmlNodeList2 = xmlNodeList1(0).selectNodes("description") ←追加 value = xmlNodeList2(0).Text ←追加 Set HttpReq = Nothing Set DomDoc = Nothing End Sub
お礼
丁寧な回答に心から感謝します。 家に帰ったら是非実行させていただきます。 本当にありがとうございました。