[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