A
Anonymous
Gast
hallo leute,
ich habe eine frage, wie komme ich mit python an die folgenden elemente im xml dokument?
hier das vollständige GPX/XML dokument
nur weiss ich leider nicht wie ich das zeugs da aus dem anderen namespace raus kriege, da XML leider nicht so mein ding ist…
das ganze ist hier auch farbig zu finden
das ziel ist am ende das ganze in einer sqlite3 datenbank zu speichern.
ich dachte mir löse erst mal den XML teil, denn der sqlite3 teil wird recht einfach werden.
ich wäre für jede hilfe dankbar.
gruss DunkleAura
ich habe eine frage, wie komme ich mit python an die folgenden elemente im xml dokument?
hier das vollständige GPX/XML dokument
der fette teil ist der mich interessiert.http://dunkleaura.pastebin.ca/1691498 schrieb:<wpt lat="47.9876" lon="7.8765">
<time>2007-05-19T00:00:00</time>
<name>GC130BG</name>
<desc>Einer cooler Tradi by Nickname Owner, Traditional Cache (2.5/2.5)</desc>
<url>http://www.geocaching.com/seek/cache_details.aspx?guid=GUID</url>
<urlname>Einer cooler Tradi</urlname>
<sym>Geocache Found</sym>
<type>Geocache|Traditional Cache</type>
<groundspeak:cache id="200001" available="False" archived="True" xmlns:groundspeak="http://www.groundspeak.com/cache/1/0">
<groundspeak:name>Einer cooler Tradi</groundspeak:name>
<groundspeaklaced_by>Nickname Owner</groundspeak
laced_by>
<groundspeakwner id="220001">Nickname Owner</groundspeak
wner>
<groundspeak:type>Traditional Cache</groundspeak:type>
<groundspeak:container>Micro</groundspeak:container>
<groundspeak:difficulty>2.5</groundspeak:difficulty>
<groundspeak:terrain>2.5</groundspeak:terrain>
<groundspeak:country>Switzerland</groundspeak:country>
<groundspeak:state>Espace Mittelland (BE/SO)</groundspeak:state>
<groundspeak:short_description html="False">Das ist die kurze Beschreibung</groundspeak:short_description>
<groundspeak:long_description html="False">Sehr lange Beschreibung.
Noch länger…
Noch viel länger…</groundspeak:long_description>
<groundspeak:encoded_hints>hier der hint</groundspeak:encoded_hints>
<groundspeak:logs>
<groundspeak:log id="210001">
<groundspeak:date>2007-09-02T07:00:00</groundspeak:date>
<groundspeak:type>Found it</groundspeak:type>
<groundspeak:finder id="220002">Nickname Cacher</groundspeak:finder>
<groundspeak:text encoded="False">Hier
der Logtext</groundspeak:text>
</groundspeak:log>
</groundspeak:logs>
<groundspeak:travelbugs />
</groundspeak:cache>
</wpt>
nur weiss ich leider nicht wie ich das zeugs da aus dem anderen namespace raus kriege, da XML leider nicht so mein ding ist…
das ganze ist hier auch farbig zu finden
Code:
#!/usr/bin/env python
# -*- coding: utf8 -*-
# das GPX File "myfinds.gpx" aufbau http://dunkleaura.pastebin.ca/1691498
from xml.dom import minidom, Node
gpxfile = 'myfinds.gpx'
def getText(nodelist):
rc = ""
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc = rc + node.data
return rc
def handleText(wpt, elem):
return "%s" % getText(wpt.getElementsByTagName(elem)[0].childNodes)
def handlePocketQuery(pocketQuery):
handlePocketQueryTitle(pocketQuery.getElementsByTagName("name")[0])
wpts = pocketQuery.getElementsByTagName("wpt")
handleWaypoints(wpts)
def handlePocketQueryTitle(title):
print "%s" % getText(title.childNodes)
print '-' * 80 + "\n"
def handleWaypoints(wpts):
print 'Waypoint Names:'
print '-' * 80
for wpt in wpts:
handleWaypoint(wpt)
def handleWaypoint(wpt):
print handleText(wpt, 'name') + ' \t' + handleText(wpt, 'desc')
print '-' * 80
print handleText(wpt, 'url') + '\n'
def main():
datei = open(gpxfile, "r")
dom = minidom.parse(datei)
datei.close()
handlePocketQuery(dom)
if __name__ == '__main__':
main()
ich dachte mir löse erst mal den XML teil, denn der sqlite3 teil wird recht einfach werden.
ich wäre für jede hilfe dankbar.
gruss DunkleAura