title: More functional approach to xml parsing
body: <p>I am mapping some xml to a case class and it works fine, but I have a feeling that my imperative blinkers are blinding me to a better functional solution. Can anyone suggest a better way than this:</p>
  
  <pre><code>def buildAddress(geocodeResponse: NodeSeq) : Address = {
    val addressNodes = geocodeResponse \\ "address_component"
    var street = " "
    var town = ""
    var suburb = ""
    var province = ""
    var country = ""
    var postalCode = ""
  
    addressNodes.foreach {node =&gt;      
      val typeString = (node \ "type").head.text
      if ("street_number" ==  typeString) {
        street = (node \ "long_name").text + street
      }
      else if ("route" == typeString) {
        street = street + (node \ "long_name").text
      }
      else if ("locality" == typeString) {
        town = (node \ "long_name").text
      }
      else if ("sublocality" == typeString) {
        suburb = (node \ "long_name").text
      }
      else if ("administrative_area_level_1" == typeString) {
        province = (node \ "long_name").text
      }
      else if ("country" == typeString) {
        country =  (node \ "long_name").text
      }
      else if ("postal_code" == typeString) {
        town = (node \ "long_name").text
      }
    }
    Address(street,suburb,town,province,country,postalCode)
  }
  </code></pre>
  
  <p>The xml in this case is retrieved from he Google geo-coding api, using Dispatch.</p>
  
  <pre><code>   import dispatch._ 
     def lookupAddress(lat: Double, long: Double): Address = {
       val position = lat.toString + "," + long.toString
       val req = url("http://maps.googleapis.com/maps/api/geocode/xml") &lt;&lt;? Map("latlng" -&gt; position, "sensor" -&gt; "true")
       Http(req &lt;/&gt; {
       nodes =&gt; buildAddress(nodes)
       })
     }
  </code></pre>
  
  <p>The xml result looks like this:</p>
  
  <pre><code>    &lt;GeocodeResponse&gt;
        &lt;status&gt;OK&lt;/status&gt;
        &lt;result&gt;
          &lt;type&gt;street_address&lt;/type&gt;
          &lt;formatted_address&gt;3 Louw St, Stellenbosch 7600, South Africa&lt;/formatted_address&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;3&lt;/long_name&gt;
            &lt;short_name&gt;3&lt;/short_name&gt;
            &lt;type&gt;street_number&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Louw St&lt;/long_name&gt;
            &lt;short_name&gt;Louw St&lt;/short_name&gt;
            &lt;type&gt;route&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Stellenbosch Central&lt;/long_name&gt;
            &lt;short_name&gt;Stellenbosch Central&lt;/short_name&gt;
            &lt;type&gt;sublocality&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Stellenbosch&lt;/long_name&gt;
            &lt;short_name&gt;Stellenbosch&lt;/short_name&gt;
            &lt;type&gt;locality&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Stellenbosch&lt;/long_name&gt;
            &lt;short_name&gt;Stellenbosch&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_3&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Brede River DC&lt;/long_name&gt;
            &lt;short_name&gt;Brede River DC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_2&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Western Cape&lt;/long_name&gt;
            &lt;short_name&gt;WC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_1&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;South Africa&lt;/long_name&gt;
            &lt;short_name&gt;ZA&lt;/short_name&gt;
            &lt;type&gt;country&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;7600&lt;/long_name&gt;
            &lt;short_name&gt;7600&lt;/short_name&gt;
            &lt;type&gt;postal_code&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;geometry&gt;
            &lt;location&gt;
              &lt;lat&gt;-33.9403990&lt;/lat&gt;
              &lt;lng&gt;18.8610090&lt;/lng&gt;
            &lt;/location&gt;
            &lt;location_type&gt;ROOFTOP&lt;/location_type&gt;
            &lt;viewport&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-33.9435466&lt;/lat&gt;
                &lt;lng&gt;18.8578614&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-33.9372514&lt;/lat&gt;
                &lt;lng&gt;18.8641566&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/viewport&gt;
          &lt;/geometry&gt;
        &lt;/result&gt;
        &lt;result&gt;
          &lt;type&gt;sublocality&lt;/type&gt;
          &lt;type&gt;political&lt;/type&gt;
          &lt;formatted_address&gt;Stellenbosch Central, Stellenbosch, South Africa&lt;/formatted_address&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Stellenbosch Central&lt;/long_name&gt;
            &lt;short_name&gt;Stellenbosch Central&lt;/short_name&gt;
            &lt;type&gt;sublocality&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Stellenbosch&lt;/long_name&gt;
            &lt;short_name&gt;Stellenbosch&lt;/short_name&gt;
            &lt;type&gt;locality&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Stellenbosch&lt;/long_name&gt;
            &lt;short_name&gt;Stellenbosch&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_3&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Brede River DC&lt;/long_name&gt;
            &lt;short_name&gt;Brede River DC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_2&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Western Cape&lt;/long_name&gt;
            &lt;short_name&gt;WC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_1&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;South Africa&lt;/long_name&gt;
            &lt;short_name&gt;ZA&lt;/short_name&gt;
            &lt;type&gt;country&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;geometry&gt;
            &lt;location&gt;
              &lt;lat&gt;-33.9354048&lt;/lat&gt;
              &lt;lng&gt;18.8640607&lt;/lng&gt;
            &lt;/location&gt;
            &lt;location_type&gt;APPROXIMATE&lt;/location_type&gt;
            &lt;viewport&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-33.9437180&lt;/lat&gt;
                &lt;lng&gt;18.8449199&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-33.9230960&lt;/lat&gt;
                &lt;lng&gt;18.8778929&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/viewport&gt;
            &lt;bounds&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-33.9437180&lt;/lat&gt;
                &lt;lng&gt;18.8449199&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-33.9230960&lt;/lat&gt;
                &lt;lng&gt;18.8778929&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/bounds&gt;
          &lt;/geometry&gt;
        &lt;/result&gt;
        &lt;result&gt;
          &lt;type&gt;postal_code&lt;/type&gt;
          &lt;formatted_address&gt;7599, South Africa&lt;/formatted_address&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;7599&lt;/long_name&gt;
            &lt;short_name&gt;7599&lt;/short_name&gt;
            &lt;type&gt;postal_code&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Brede River DC&lt;/long_name&gt;
            &lt;short_name&gt;Brede River DC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_2&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Western Cape&lt;/long_name&gt;
            &lt;short_name&gt;WC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_1&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;South Africa&lt;/long_name&gt;
            &lt;short_name&gt;ZA&lt;/short_name&gt;
            &lt;type&gt;country&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;geometry&gt;
            &lt;location&gt;
              &lt;lat&gt;-33.9300286&lt;/lat&gt;
              &lt;lng&gt;18.8640607&lt;/lng&gt;
            &lt;/location&gt;
            &lt;location_type&gt;APPROXIMATE&lt;/location_type&gt;
            &lt;viewport&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-33.9693080&lt;/lat&gt;
                &lt;lng&gt;18.8019200&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-33.8700550&lt;/lat&gt;
                &lt;lng&gt;18.9232900&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/viewport&gt;
            &lt;bounds&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-33.9693080&lt;/lat&gt;
                &lt;lng&gt;18.8019200&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-33.8700550&lt;/lat&gt;
                &lt;lng&gt;18.9232900&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/bounds&gt;
          &lt;/geometry&gt;
        &lt;/result&gt;
        &lt;result&gt;
          &lt;type&gt;locality&lt;/type&gt;
          &lt;type&gt;political&lt;/type&gt;
          &lt;formatted_address&gt;Stellenbosch, South Africa&lt;/formatted_address&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Stellenbosch&lt;/long_name&gt;
            &lt;short_name&gt;Stellenbosch&lt;/short_name&gt;
            &lt;type&gt;locality&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Stellenbosch&lt;/long_name&gt;
            &lt;short_name&gt;Stellenbosch&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_3&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Brede River DC&lt;/long_name&gt;
            &lt;short_name&gt;Brede River DC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_2&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Western Cape&lt;/long_name&gt;
            &lt;short_name&gt;WC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_1&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;South Africa&lt;/long_name&gt;
            &lt;short_name&gt;ZA&lt;/short_name&gt;
            &lt;type&gt;country&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;geometry&gt;
            &lt;location&gt;
              &lt;lat&gt;-33.9366667&lt;/lat&gt;
              &lt;lng&gt;18.8613889&lt;/lng&gt;
            &lt;/location&gt;
            &lt;location_type&gt;APPROXIMATE&lt;/location_type&gt;
            &lt;viewport&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.0150869&lt;/lat&gt;
                &lt;lng&gt;18.7658819&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-33.8782960&lt;/lat&gt;
                &lt;lng&gt;18.9232900&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/viewport&gt;
            &lt;bounds&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.0150869&lt;/lat&gt;
                &lt;lng&gt;18.7658819&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-33.8782960&lt;/lat&gt;
                &lt;lng&gt;18.9232900&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/bounds&gt;
          &lt;/geometry&gt;
        &lt;/result&gt;
        &lt;result&gt;
          &lt;type&gt;postal_code&lt;/type&gt;
          &lt;formatted_address&gt;7600, South Africa&lt;/formatted_address&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;7600&lt;/long_name&gt;
            &lt;short_name&gt;7600&lt;/short_name&gt;
            &lt;type&gt;postal_code&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Western Cape&lt;/long_name&gt;
            &lt;short_name&gt;WC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_1&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;South Africa&lt;/long_name&gt;
            &lt;short_name&gt;ZA&lt;/short_name&gt;
            &lt;type&gt;country&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;geometry/&gt;
        &lt;/result&gt;
        &lt;result&gt;
          &lt;type&gt;administrative_area_level_3&lt;/type&gt;
          &lt;type&gt;political&lt;/type&gt;
          &lt;formatted_address&gt;Stellenbosch, South Africa&lt;/formatted_address&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Stellenbosch&lt;/long_name&gt;
            &lt;short_name&gt;Stellenbosch&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_3&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Brede River DC&lt;/long_name&gt;
            &lt;short_name&gt;Brede River DC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_2&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Western Cape&lt;/long_name&gt;
            &lt;short_name&gt;WC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_1&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;South Africa&lt;/long_name&gt;
            &lt;short_name&gt;ZA&lt;/short_name&gt;
            &lt;type&gt;country&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;geometry&gt;
            &lt;location&gt;
              &lt;lat&gt;-33.9405478&lt;/lat&gt;
              &lt;lng&gt;18.9502232&lt;/lng&gt;
            &lt;/location&gt;
            &lt;location_type&gt;APPROXIMATE&lt;/location_type&gt;
            &lt;viewport&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.0633899&lt;/lat&gt;
                &lt;lng&gt;18.7083300&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-33.7933599&lt;/lat&gt;
                &lt;lng&gt;19.2438000&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/viewport&gt;
            &lt;bounds&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.0633899&lt;/lat&gt;
                &lt;lng&gt;18.7083300&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-33.7933599&lt;/lat&gt;
                &lt;lng&gt;19.2438000&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/bounds&gt;
          &lt;/geometry&gt;
        &lt;/result&gt;
        &lt;result&gt;
          &lt;type&gt;administrative_area_level_2&lt;/type&gt;
          &lt;type&gt;political&lt;/type&gt;
          &lt;formatted_address&gt;Brede River DC, South Africa&lt;/formatted_address&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Brede River DC&lt;/long_name&gt;
            &lt;short_name&gt;Brede River DC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_2&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Western Cape&lt;/long_name&gt;
            &lt;short_name&gt;WC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_1&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;South Africa&lt;/long_name&gt;
            &lt;short_name&gt;ZA&lt;/short_name&gt;
            &lt;type&gt;country&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;geometry&gt;
            &lt;location&gt;
              &lt;lat&gt;-33.4220698&lt;/lat&gt;
              &lt;lng&gt;19.7591675&lt;/lng&gt;
            &lt;/location&gt;
            &lt;location_type&gt;APPROXIMATE&lt;/location_type&gt;
            &lt;viewport&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.1172599&lt;/lat&gt;
                &lt;lng&gt;18.7083299&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-32.1844899&lt;/lat&gt;
                &lt;lng&gt;21.0103399&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/viewport&gt;
            &lt;bounds&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.1172599&lt;/lat&gt;
                &lt;lng&gt;18.7083299&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-32.1844899&lt;/lat&gt;
                &lt;lng&gt;21.0103399&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/bounds&gt;
          &lt;/geometry&gt;
        &lt;/result&gt;
        &lt;result&gt;
          &lt;type&gt;administrative_area_level_1&lt;/type&gt;
          &lt;type&gt;political&lt;/type&gt;
          &lt;formatted_address&gt;Western Cape, South Africa&lt;/formatted_address&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;Western Cape&lt;/long_name&gt;
            &lt;short_name&gt;WC&lt;/short_name&gt;
            &lt;type&gt;administrative_area_level_1&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;South Africa&lt;/long_name&gt;
            &lt;short_name&gt;ZA&lt;/short_name&gt;
            &lt;type&gt;country&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;geometry&gt;
            &lt;location&gt;
              &lt;lat&gt;-33.2277918&lt;/lat&gt;
              &lt;lng&gt;21.8568586&lt;/lng&gt;
            &lt;/location&gt;
            &lt;location_type&gt;APPROXIMATE&lt;/location_type&gt;
            &lt;viewport&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.8330538&lt;/lat&gt;
                &lt;lng&gt;17.7575638&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-30.4302599&lt;/lat&gt;
                &lt;lng&gt;24.2224100&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/viewport&gt;
            &lt;bounds&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.8330538&lt;/lat&gt;
                &lt;lng&gt;17.7575638&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-30.4302599&lt;/lat&gt;
                &lt;lng&gt;24.2224100&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/bounds&gt;
          &lt;/geometry&gt;
        &lt;/result&gt;
        &lt;result&gt;
          &lt;type&gt;country&lt;/type&gt;
          &lt;type&gt;political&lt;/type&gt;
          &lt;formatted_address&gt;South Africa&lt;/formatted_address&gt;
          &lt;address_component&gt;
            &lt;long_name&gt;South Africa&lt;/long_name&gt;
            &lt;short_name&gt;ZA&lt;/short_name&gt;
            &lt;type&gt;country&lt;/type&gt;
            &lt;type&gt;political&lt;/type&gt;
          &lt;/address_component&gt;
          &lt;geometry&gt;
            &lt;location&gt;
              &lt;lat&gt;-30.5594820&lt;/lat&gt;
              &lt;lng&gt;22.9375060&lt;/lng&gt;
            &lt;/location&gt;
            &lt;location_type&gt;APPROXIMATE&lt;/location_type&gt;
            &lt;viewport&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.9670000&lt;/lat&gt;
                &lt;lng&gt;16.2817000&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-22.1253869&lt;/lat&gt;
                &lt;lng&gt;33.0469000&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/viewport&gt;
            &lt;bounds&gt;
              &lt;southwest&gt;
                &lt;lat&gt;-34.9670000&lt;/lat&gt;
                &lt;lng&gt;16.2817000&lt;/lng&gt;
              &lt;/southwest&gt;
              &lt;northeast&gt;
                &lt;lat&gt;-22.1253869&lt;/lat&gt;
                &lt;lng&gt;33.0469000&lt;/lng&gt;
              &lt;/northeast&gt;
            &lt;/bounds&gt;
          &lt;/geometry&gt;
        &lt;/result&gt;
      &lt;/GeocodeResponse&gt;
  </code></pre>