2017-06-26 17 views
2

私は応答ここ から要素にアクセスするためのXMLパーサを使用していたロボットの枠組みの中で動作していないことは、コードXMLパーサが

ここ
# define library 
*** Settings *** 
Library SudsLibrary 
Library XML 
Library  Collections 
*** Variables *** 
*** Test Cases *** 
test 
    abc 

*** Keywords *** 
    # create soap client object 
    Create Soap Client http://www.webservicex.com/globalweather.asmx?wsdl 
    ${GetCitiesByCountry} Create Wsdl Object GetCitiesByCountry 
    ${GetCitiesByCountry.CountryName} Set Variable india 
    # call soap web service 
    call soap method GetCitiesByCountry ${GetCitiesByCountry} 
    log ${GetCitiesByCountry} 
    ${soap_response} Get Last Received 
    Log ${soap_response} 
    ${root}= parse xml ${soap_response} 
    log ${root} 
    ${root1}= parse xml ${soap_response} first 
    log ${root1} 

である出力:それは結果のXML

Documentation: 
Logs the given message with the given level. 
Start/End/Elapsed: 20170626 11:52:46.886/20170626 11:52:46.886/00:00:00.000 
11:52:46.886 INFO <Element 'Envelope' at 0x0000000003670930 
BuiltIn . Log ${root1} 
Documentation: 
Logs the given message with the given level. 
Start/End/Elapsed: 20170626 11:52:46.887/20170626 11:52:46.887/00:00:00.000 
11:52:46.887 INFO <Element '{http://schemas.xmlsoap.org/soap/envelope/}Envelope' at 0x0000000003728C60> 
+1

「$ {root}」と「$ {root1}」は文字列ではないため、XMLを表示することはありません。 –

答えて

3

は表示されません。 Webサービスの応答には、奇妙なことが起こっています。その一部がHTMLエンコードされているように見えますが、他のものはそうではありません。それを説明することはできませんが、単純な文字列の置換で簡単に解決できます。

*** Settings *** 
Library SudsLibrary 
Library XML 
Library String 
*** Test Cases *** 
Test Webservice 
    # create soap client object 
    Create Soap Client http://www.webservicex.com/globalweather.asmx?wsdl 

    ${GetCitiesByCountry} Create Wsdl Object GetCitiesByCountry 
    ${GetCitiesByCountry.CountryName} Set Variable india 

    # # call soap web service 
    call soap method GetCitiesByCountry ${GetCitiesByCountry} 
    ${soap_response} Get Last Received 

    # Clean up response 
    ${soap_response}  Replace String ${soap_response} &lt; < 
    ${soap_response}  Replace String ${soap_response} &gt; >  

    ${node}= Get Element Text ${soap_response} .//Table[1]//Country[1] 
    Log To Console ${node}