• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

S: Java GPX Parser

OP
callidus2000

callidus2000

Geocacher
Ok, anders:
Eine Parser.java, die aus einer GPX-Datei mir direkt initialisierte Objekte zurückliefert... Wollte mir nicht etwas selber zusammenstricken, falls es schon was fertiges gibt.

-Sascha
 

moenk

Administrator
Teammitglied
Der Code hier packt Dir das doch eine XML schick in eine Liste:
http://totheriver.com/learn/xml/xmltutorial.html#6.1.1
 

Colin

Geocacher
Alternativ könntest du XMLBeans benutzen. Damit kannst du aus dem XSD-Schema für das GPX-Format (http://www.topografix.com/GPX/1/1/gpx.xsd) Java-Klassen generieren.

Die heißen dann genau so wie die GPX-Elemente und haben auch die entsprechenden Attribute.

Ist eventuell ein bisschen einfacher als mit der JAXP DOM Api, der Nachteil ist allerdings, dass du die Klassen vorher generieren lassen musst...
 

chriz

Geocacher
Hallo callidus2000,

ich habe Dir mal schnell ein kleines Beispiel mit JAXB zusammengebastelt. Grundsätzliches Vorgehen:
1. XSD erstellen: Topografix GPX + Geocaching-Erweiterungen von Groundspeak als Import (siehe geocache_gpx.xsd)
2. Daraus per XJC Java-Klassen generieren lassen (siehe Ant-Task)
3. Damit's nachher übersichtlicher ist, habe ich diese in ein eigenes Package zusammenkopiert
4. Mit JAXBContext und Unmarshaller dann einfach das GPX einlesen und mit den Objekten nach Belieben hantieren (siehe Beispielcode in ParserMain)...

Download des kompletten Eclipse-Projektes (ca. 15MB mit allen JARs etc. via RapidShare).

Ich hoffe, ich konnte Dir ein wenig weiterhelfen. Was willst Du denn genau programmieren?

Viel Spaß beim Programmieren wünscht
chriz
 
OP
callidus2000

callidus2000

Geocacher
Gracias, schaue ich mir an.

Ich erstelle mir immer einen kleinen individuellen Ausdruck von Multis oder von "Die-muss-ich-im-Urlaub-besuchen" Caches. In den Ausdruck übernehme ich immer Screenshots/Kopien der Yahoo-Karte und/oder von Google. Ich wollte mir mal den Vorgang automatisieren, zu einer GPX-Datei (Pocket Query meiner Bookmarks) alle Karten-JPGs herunterzuladen...

-Sascha aka callidus2000
 

Donauradler

Geonewbie
chriz schrieb:
Download des kompletten Eclipse-Projektes (ca. 15MB mit allen JARs etc. via RapidShare).

Der RS-Link ist leider tot. Hast du das Projekt noch und könntest es nochmal zur Verfügung stellen? Ich habe das gleiche nun zwar auch versucht und mit JAXB die Klassen generiert, doch leider bekomme ich beim Parsen einer Groundspeak-PQ-GPX-Datei lediglich eine Instanz vom Typ GPXType zurück. Wie komme ich davon zu einer Cache-Instanz? Irgendwie scheint JAXB da die Beziehung der beiden zueinander nicht korrekt erkannt zu haben.

Viele Grüße,
ein Donauradler.
 

Knaeckebrot

Geonewbie
Hallo,

es sind zwar ein paar Jahre her, aber ich bin jetzt erst auf den Thread gestoßen:

Ich versuche gerade via JAXB, meine Pocketqueries zu parsen. Das Parsen der GPX-Dateien ist ansich kein Problem, nur das geocaching.com-spezifische xsd:any-Objekt. Dazu habe ich zwar auch ein Schema und JAXB-Klassen, nur schaffe ich dies nicht auf Java-Ebene korrekt umzusetzen (sprich: aus dem DOM-Objekt ein JAXB-Objekt zu machen).

Das hier angesprochene Eclipse-Projekt ist leider nicht beim bei RS verfügbar - könnte das jemand irgendwohin uploaden oder mich per Mail kontaktieren? Wäre sehr nett!

Danke im Voraus für die Hilfe :).


Ciao,

Knaeckebrot
 
Oben