ich habe eine frage, wie komme ich mit python an die folgenden elemente im xml dokument?
hier das vollständige GPX/XML dokument
Code: Alles auswählen
<wpt lat="47.9876" lon="7.8765">
<time>[b]2007-05-19T00:00:00[/b]</time>
<name>[b]GC130BG[/b]</name>
<desc>Einer cooler Tradi by Nickname Owner, Traditional Cache (2.5/2.5)</desc>
<url>[b]http://www.geocaching.com/seek/cache_details.aspx?guid=GUID[/b]</url>
<urlname>Einer cooler Tradi</urlname>
<sym>Geocache Found</sym>
<type>Geocache|Traditional Cache</type>
<groundspeak:cache id="[b]200001[/b]" available="[b]False[/b]" archived="[b]True[/b]" xmlns:groundspeak="http://www.groundspeak.com/cache/1/0">
<groundspeak:name>[b]Einer cooler Tradi[/b]</groundspeak:name>
<groundspeak:placed_by>[b]Nickname Owner[/b]</groundspeak:placed_by>
<groundspeak:owner id="[b]220001[/b]">[b]Nickname Owner[/b]</groundspeak:owner>
<groundspeak:type>[b]Traditional Cache[/b]</groundspeak:type>
<groundspeak:container>[b]Micro[/b]</groundspeak:container>
<groundspeak:difficulty>[b]2.5[/b]</groundspeak:difficulty>
<groundspeak:terrain>[b]2.5[/b]</groundspeak:terrain>
<groundspeak:country>[b]Switzerland[/b]</groundspeak:country>
<groundspeak:state>[b]Espace Mittelland (BE/SO)[/b]</groundspeak:state>
<groundspeak:short_description html="[b]False[/b]">[b]Das ist die kurze Beschreibung[/b]</groundspeak:short_description>
<groundspeak:long_description html="[b]False[/b]">[b]Sehr lange Beschreibung.
Noch länger…
Noch viel länger…[/b]</groundspeak:long_description>
<groundspeak:encoded_hints>[b]hier der hint[/b]</groundspeak:encoded_hints>
<groundspeak:logs>
<groundspeak:log id="[b]210001[/b]">
<groundspeak:date>[b]2007-09-02T07:00:00[/b]</groundspeak:date>
<groundspeak:type>[b]Found it[/b]</groundspeak:type>
<groundspeak:finder id="[b]220002[/b]">[b]Nickname Cacher[/b]</groundspeak:finder>
<groundspeak:text encoded="False">[b]Hier
der Logtext[/b]</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: Alles auswählen
#!/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.
aber bitte keine google links, ich glaube ich habe alles mögliche gegoogelt… ausser es ist etwas wirklich nützliches.
gruss DunkleAura