String aus Zeile, die ich von SD Karte lese, finden... Howto?

Ich habe immer wieder das Problem, dass ich auf simple Probleme stoße, die mich fuchsig machen - wo ich nicht weiterkomme. Ich habe mit mit dem Geocaching Virus infizieren lassen. Aus diesem Grund hatte ich die Idee, dass ich mir ein Projekt ausdenke, welches diese Thema aufgeift. Dazu habe ich derzeit folgenden Komponenten verbaut:

Arduino Uno
Nokia 3310 Shield
EM 406 A
SD Card (Adapter)
1100 mAh Akku

Soweit, sogut. Ich habe nun auch das Problem des Ansprechen der SD Karte gelöst: http://arduino.cc/forum/index.php/topic,59039.0.html . Ich kann sie nun auch mit dem Nokia Display zusammen benutzen.

Ich möchte mir nun einen Parser machen, der aus der gpx Datei, die auf SD Karte liegt, bestimme Werte ausliest. Das Format ist so:

  <wpt lat="53.062767" lon="8.871067">
    <time>2007-07-18T07:00:00Z</time>
    <name>GC14EVC</name>
    <desc>Essen - Trinken - Shoppen by DG9BGK, Traditional Cache (1.5/1)</desc>
    <url>http://www.geocaching.com/seek/cache_details.aspx?guid=3bb91c4b-6a30-4227-b355-d6210214c046</url>
    <urlname>Essen - Trinken - Shoppen</urlname>
    <sym>Geocache</sym>
    <type>Geocache|Traditional Cache</type>
    <groundspeak:cache id="645837" available="True" archived="False" xmlns:groundspeak="http://www.groundspeak.com/cache/1/0">
      <groundspeak:name>Essen - Trinken - Shoppen</groundspeak:name>
      <groundspeak:placed_by>DG9BGK</groundspeak:placed_by>
      <groundspeak:owner id="1143700">DG9BGK</groundspeak:owner>
      <groundspeak:type>Traditional Cache</groundspeak:type>
      <groundspeak:container>Micro</groundspeak:container>
      <groundspeak:difficulty>1.5</groundspeak:difficulty>
      <groundspeak:terrain>1</groundspeak:terrain>
      <groundspeak:country>Germany</groundspeak:country>
      <groundspeak:state>Bremen</groundspeak:state>
      <groundspeak:short_description html="False">
      </groundspeak:short_description>
      <groundspeak:long_description html="False">Essen – Trinken – Shoppen                           

Parkplätze ohne Ende! – Schlechter GPS-Empfang? – Dann laß Dir mal was einfallen. Beim Cache ist der Empfang superst!

Bitte Stift mitbringen

Achtung!! Ab 25.02.2008 geringfügig geänderte Koordinaten!
          Bitte Dose nach dem Loggen gut befestigen!</groundspeak:long_description>
      <groundspeak:encoded_hints>Tipp hier</groundspeak:encoded_hints>
      <groundspeak:logs>

Für mich wären zunächst die Werte

Essen - Trinken - Shoppen by DG9BGK, Traditional Cache (1.5/1)

und

groundspeak:encoded_hintsTipp hier</groundspeak:encoded_hints>

von Interesse. Wie, zum fluch-zensiert bekomme ich ein Parsing hin? Ich möchte die Texte zwischen den Tags haben. Muss ich die gesamte Zeile in ein Array einlesen und dann alle Stellen Zeichen für zeichen mit dem String <wpt lat=" vergleichen? Oder wie macht man das am Besten?

DE8MSH:
Muss ich die gesamte Zeile in ein Array einlesen und dann alle Stellen Zeichen für zeichen mit dem String <wpt lat=" vergleichen?

Wirst Du wohl nicht drum rum kommen.

Ich würde mir eine Funktion basteln die mir den Tag ausliest und zurück gibt (hier also "wpt", oder aber eine definete statische int-Variable, wenn Dus nicht ganz so wiederverwendbar brauchst), und eine andere die dann die einzelnen Parameter ausliest (also "lat" und "lon"). Das kannst Du dann auch für alle anderen Tags nutzen...