I use xml minidom and it is easier.

http://zerp.ly/rochacbruno
Em 19/09/2011 11:40, "Chris Rowson" <[email protected]> escreveu:
> Thank you Michele,
>
> Chris
>
> On Mon, Sep 19, 2011 at 2:00 PM, Michele Comitini
> <[email protected]> wrote:
>> There is nothing wrong with your code. Maybe it is better to use
>> find() to get the <geo> tag.
>> If you have an XSD schema you can use generateDS
>> http://www.rexx.com/~dkuhlman/generateDS.html
>> to have a python parser.
>>
>> But if you can use the JSON API... much simpler.
>>
>> mic
>>
>>
>> 2011/9/19 Chris Rowson <[email protected]>:
>>> Anybody using xml.etree?
>>>
>>> I asked this question over at the Python tutors group but it seems
>>> that few people there had experience of it.
>>>
>>> I'm trying to access a UK postcode API at www.uk-postcodes.com to take
>>> a UK postcode and return the lat/lng of the postcode. This is what the
>>> XML looks like: http://www.uk-postcodes.com/postcode/HU11AA.xml
>>>
>>> The function below returns a dict with the xml tag as a key and the
>>> text as a value. Is this a correct way to use xml.etree? Is there a
>>> better way of doing this?
>>>
>>> Thanks in advance!
>>>
>>> Chris
>>>
>>>
>>> def ukpostcodesapi(postcode):
>>>       import urllib
>>>       import xml.etree.ElementTree as etree
>>>
>>>       baseURL='http://www.uk-postcodes.com/'
>>>       geocodeRequest='postcode/'+postcode+'.xml'
>>>
>>>       #grab the xml
>>>       tree=etree.parse(urllib.urlopen(baseURL+geocodeRequest))
>>>       root=tree.getroot()
>>>       results={}
>>>       for child in root[1]: #here's the geo tag
>>>               results.update({child.tag:child.text}) #build a dict
>>> containing the geocode data
>>>       return results
>>>
>>> #example usage (testing the function)
>>> results = ukpostcodesapi('hu11aa')
>>> print results['lat']+' '+results['lng']
>>>
>>

Reply via email to