[XML-SIG] parsing XML with minidom

Stefan Behnel stefan_ml at behnel.de
Mon Apr 26 06:44:49 CEST 2010


kimmyaf, 26.04.2010 00:24:
> Hello. I've only done a litte bit of parsing with minidom before but I'm
> having trouble getting my values out of this xml. I need the latitude and
> longitude values in bold.

I don't see anything 'bold' in your mail, but your example tells me what 
data you mean.

Here is some untested code using xml.etree.cElementTree:

     import xml.etree.cElementTree as ET
     tree = ET.parse("thefile.xml")
     for tag in tree.getiterator("location"):
         print tag.findtext("lat"), tag.findtext("lng")

Note that cElementTree is both faster and simpler than minidom.

Stefan



> <GeocodeResponse>
>   <status>OK</status>
>   <result>
>    <type>street_address</type>
>    <formatted_address>50 Oakland St, Wellesley, MA 02481,
> USA</formatted_address>
>    <address_component>
>     <long_name>50</long_name>
>     <short_name>50</short_name>
>     <type>street_number</type>
>    </address_component>
>    <address_component>
>     <long_name>Oakland St</long_name>
>     <short_name>Oakland St</short_name>
>     <type>route</type>
>    </address_component>
>    <address_component>
>     <long_name>Wellesley</long_name>
>     <short_name>Wellesley</short_name>
>     <type>locality</type>
>     <type>political</type>
>    </address_component>
>    <address_component>
>     <long_name>Wellesley</long_name>
>     <short_name>Wellesley</short_name>
>     <type>administrative_area_level_3</type>
>     <type>political</type>
>    </address_component>
>    <address_component>
>     <long_name>Norfolk</long_name>
>     <short_name>Norfolk</short_name>
>     <type>administrative_area_level_2</type>
>     <type>political</type>
>    </address_component>
>    <address_component>
>     <long_name>Massachusetts</long_name>
>     <short_name>MA</short_name>
>     <type>administrative_area_level_1</type>
>     <type>political</type>
>    </address_component>
>    <address_component>
>     <long_name>United States</long_name>
>     <short_name>US</short_name>
>     <type>country</type>
>     <type>political</type>
>    </address_component>
>    <address_component>
>     <long_name>02481</long_name>
>     <short_name>02481</short_name>
>     <type>postal_code</type>
>    </address_component>
>    <geometry>
>     <location>
>      <lat>42.3118520</lat>
>      <lng>-71.2632680</lng>
>     </location>
>     <location_type>ROOFTOP</location_type>
>     <viewport>
>      <southwest>
>       <lat>42.3093524</lat>
>       <lng>-71.2665476</lng>
>      </southwest>
>      <northeast>
>       <lat>42.3156476</lat>
>       <lng>-71.2602524</lng>
>      </northeast>
>     </viewport>
>    </geometry>
>   </result>
> </GeocodeResponse>
>
>
> Code:
>
> body = dom.getElementsByTagName('GeocodeResponse')[0]
>
> for item in body.getElementsByTagName('location'):
>       lat = item.getAttribute('lat')
>       lng = item.getAttribute('lng')



More information about the XML-SIG mailing list