2012-01-12 5 views
2

У меня есть автономный VBScript, который подключается к серверу и получает текст ответа (как XML) в объекте WinHttpRequest. Теперь, мой вопрос заключается в том, как я анализирую содержимое XML в нем. Когда я отправляю запрос (strPostData), мне нужно проанализировать XML-ответ. То, что я использую ниже, не работает, так как я не могу распечатать вывод на консоли. Однако я могу вывести ResponseText. Но я не могу разобрать его.Как разобрать xml из объекта WinHttp.WinHttpRequest?

Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1") 
    objWinHttp.Send(strPostData) 
    objWinHttp.WaitForResponse() 

    If objWinHttp.Status = "200" Then 
     GetDataFromURL = objWinHttp.ResponseText 
     Set xmlDoc = CreateObject("Microsoft.XMLDOM") 
     xmlDoc.loadXML(GetDataFromURL) 
     Set ops = xmlDoc.getElementsByTagName("Response\Status").item(0).text 


     WScript.Echo "Output is: " & ops 
     WScript.Echo "Message: " & GetDataFromURL 
     Msgbox GeteDataFromURL 
     WScript.Quit(0) 

Вот XML должен быть проанализирован:

<RCTRequest> 
    <Response> 
     <Name>aaa</Name> 
     <Status>44</Status> 
    </Response> 
</RCTRequest> 
+0

Какое сообщение об ошибке вы получаете? – MBu

+0

Простите, когда я сказал сообщение, я имел в виду ResponseText. Я изменил вопрос сейчас – Srinivas

ответ

1

Вы можете использовать XPath

Set xmlDoc = CreateObject("Microsoft.XMLDOM") 
    xmlDoc.async = false 
    xmlDoc.SetProperty "SelectionLanguage", "XPath"  
    xmlDoc.loadXML(GetDataFromURL) 
    Set ops =xmlDoc.SelectSingleNode("/RCTRequest/Response/Status") 
    WScript.Echo "Output is: " & (ops.text) 
    WScript.Echo "Message: " & GetDataFromURL 
    Msgbox GeteDataFromURL 
    WScript.Quit(0) 
0

Я полагаю, вы получаете "ошибка во время выполнения: Требуется объект" ошибка. Это вызвано линией

Set ops = xmlDoc.getElementsByTagName("Response\Status").item(0).text 

Просто удалите set с начала этой строки.

+0

Простите, когда я сказал сообщение, я имел в виду ResponseText. Я изменил вопрос сейчас – Srinivas

+0

Я попросил симптомы того факта, что вы не можете распечатать вывод на консоль. Тем временем я попытался разобрать ваш XML и «Set ops =' дал мне «Object required» error, поэтому я отправил свой ответ. – MBu

+0

У меня нет ошибок. Результат просто не печатается на консоли – Srinivas

0

Вы на правильном пути, используя XMLDOM. Ознакомьтесь с моей статьей Reading XML Files in WSH для примеров того, как анализировать конкретные данные с XML-ввода.