2011-06-29 64 views
2

我需要解析一個googleReverseGeocoding XML響應。以下代碼是響應示例。幫助Groovy GPATH

<GeocodeResponse> 
<status>OK</status> 
<result>...</result> 
<result> 
    <type>sublocality</type> 
    <type>political</type> 
    <formatted_address>Oeiras, Portugal</formatted_address> 
    <address_component> 
    <long_name>Oeiras</long_name> 
    <short_name>Oeiras</short_name> 
    <type>sublocality</type> 
    <type>political</type> 
    </address_component> 
    <address_component> 
    <long_name>Lisboa</long_name> 
    <short_name>Lisboa</short_name> 
    <type>administrative_area_level_1</type> 
    <type>political</type> 
    </address_component> 
<result>...</result> 
<result>...</result> 
</GeocodeResponse> 

我需要找到與價值「葡京」,當型標籤是administrative_area_level_1出現的「LONG_NAME」標籤。 我嘗試以下,但它不工作:

result.city = geocodeResponse.result.find{it.address_component.type == "administrative_area_level_1"}.address_component.find{it.type == "administrative_area_level_1"}.long_name as String 

一點幫助將是巨大的。 在此先感謝。

回答

4

嘗試這樣:

records = new XmlSlurper().parseText(xml) 
records.result.address_component.find { address -> 
    address.type.any { type -> 
     type == 'administrative_area_level_1' 
    } 
}.long_name 
+0

的作品!非常感謝 –