XMLファイルの内容は以下のとおりです。
<?xml version="1.0" encoding="UTF-8" ?>
- <result>
<status>success</status>
- <file>
<ccd>AAAAAAAAAAAA</ccd>
<count>1</count>
</file>
- <file>
<ccd>BBBBBBBBBBBB</ccd>
<count>1</count>
</file>
- <file>
<ccd>CCCCCCCCCCCC</ccd>
<count>1</count>
</file>
</result>
上記のファイルから
ccd(AAAAAAAAAAAA、BBBBBBBBBBBB、CCCCCCCCCCCC)を取得したいのですがうまくいきません。
ご指摘お願いいたします。
Dim MSxml As Object
Set MSxml = CreateObject("Microsoft.XMLHTTP")
MSxml.Open "POST", "http://www.xxx.net/Data/public/searchAction.do", False
MSxml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
MSxml.send ("account=" & strGroupid & "&password=" & strPass)
Debug.Print MSxml.Status
Debug.Print MSxml.responseText
■Debug.Printで確認した結果
<?xml version="1.0" encoding="UTF-8"?>
<result>
<status>success</status>
</result>
となります。statusは200でした。
> XMLファイルの内容は以下のとおりです。
要素の前にある「-」って、何か意味があるのでしょうか?
(そのままだと、不正なxmlとして認識されてしまうはずなので…)
> ccd(AAAAAAAAAAAA、BBBBBBBBBBBB、CCCCCCCCCCCC)を取得したいのですがうまくいきません。
MSXML の DOM にロードしておいて、
For Each X In .documentElement.selectNodes("//ccd")
Debug.Print X.text
Next
とか。
回答ありがとうございます。
-ですか・・・。たしかについてますね。別担当者の作成XMLファイルなので確認してみます・・・。
'DOMにロード
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = "false"
bSuccess = xmlDoc.Load(GPSxml.responseXML)
If bSuccess Then
For Each Node In xmlDoc.documentElement.childNodes("//ccd")
Debug.Print X.Text
Next
End If
For Each Node In ・・・のstepで型が異なるとエラーになってしまいます。
できました。アドバイスありがとうございました。助かりました。
If bSuccess Then
For Each Node In xmldoc.documentElement.getElementsByTagName("ccd")
Debug.Print Node.Text
Next
End If
ツイート | ![]() |