2

サーバーに接続し、WinHttpRequest オブジェクトで (XML として) 応答テキストを取得するスタンドアロンの VBScript があります。さて、私の質問は、その中の XML コンテンツをどのように解析するかです。request(strPostData) を投稿するとき、応答 XML を解析する必要があります。コンソールに出力を印刷できないため、以下で使用しているものは機能しません。ただし、ResponseText を出力することはできます。しかし、私はそれを解析することができません。

  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>
4

4 に答える 4

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)   
于 2012-01-12T22:03:32.560 に答える
0

XMLDOM を使用して正しい方向に進んでいます。XML 入力から特定のデータを解析する方法の例については、私の記事Reading XML Files in WSHを参照してください。

于 2012-01-13T19:13:27.600 に答える
0

「実行時エラー: オブジェクトが必要です」というエラーが表示されると思います。ラインが原因です

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

setその行の先頭から削除するだけです。

于 2012-01-12T22:23:15.590 に答える