[BangPypers] parsing xml

Baishampayan Ghose b.ghose at gmail.com
Thu Jul 28 12:07:25 CEST 2011


> here is a simplified version of an xml file:
>
> <?xml version="1.0" encoding="UTF-8"?>
>    <gpx >
>        <metadata>
>                <author>
>                <name>CloudMade</name>
>                <email id="support" domain="cloudmade.com" />
>                <link href="http://maps.cloudmade.com"></link>
>                </author>
>                <copyright author="CloudMade">
>                <license>http://cloudmade.com/faq#license</license>
>                </copyright>
>                <time>2011-07-28T07:04:01</time>
>        </metadata>
>            <extensions>
>                <distance>1489</distance>
>                <time>344</time>
>                <start>Sägerstraße</start>
>                <end>Im Gisinger Feld</end>
>            </extensions>
>    </gpx>
>
> I want to get the value of the distance element - 1489. What is the
> simplest way of doing this?

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from xml.etree.ElementTree import fromstring

data = """<?xml version="1.0" encoding="UTF-8"?>
   <gpx >
       <metadata>
               <author>
               <name>CloudMade</name>
               <email id="support" domain="cloudmade.com" />
               <link href="http://maps.cloudmade.com"></link>
               </author>
               <copyright author="CloudMade">
               <license>http://cloudmade.com/faq#license</license>
               </copyright>
               <time>2011-07-28T07:04:01</time>
       </metadata>
           <extensions>
               <distance>1489</distance>
               <time>344</time>
               <start>Sägerstraße</start>
               <end>Im Gisinger Feld</end>
           </extensions>
   </gpx>"""


def parse_xml(s):
    element = fromstring(s)
    return element.find("extensions/distance").text

if __name__ == "__main__":
    print parse_xml(data)

Hope that helps.

Regards,
BG

-- 
Baishampayan Ghose
b.ghose at gmail.com


More information about the BangPypers mailing list