Einzelnen Beitrag anzeigen

hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#1

In GPX (XML) Datei anzahl Nodes auslesen

  Alt 25. Aug 2011, 15:56
Hallo zusammen

Ich versuche die Anzahl der WPT Nodes in einer GPX (XML) Datei auszulesen...

Also wie oft ein solcher Block vorkommt:

Code:
<wpt lat="42.438878" lon="-71.119277">
 <ele>44.586548</ele>
 <time>2001-11-28T21:05:28Z</time>
 <name>5066</name>
 <desc><![CDATA[5066]]></desc>
 <sym>Crossing</sym>
 <type><![CDATA[Crossing]]></type>
</wpt>
Irgendwie schaffe ich es nicht die Anzahl auszulesen...

Mit
showmessage(inttostr(Document.DocumentElement.ChildNodes['wpt'].ChildNodes.Count)); Erhalte ich die Anzahl (6) innerhalb von wpt

Ich hoffe ihr könnt mir helfen
Danke

Mein Code Bisher:

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  Document:IXMLDocument;
  i:integer;
begin

  if 1 = 1 then
  begin
    Document := NewXMLDocument;
    Document.Encoding := 'ISO-8859-1';
    Document.LoadFromFile('J:/fells_loop.gpx');
    Document.Active := True; //Parsen lassen

   Memo3.Lines.Clear;
    // Titelzeile anfügen
    //Memo3.Lines.Add(Document.DocumentElement.ChildNodes['wpt'].Attributes['lat']);

      showmessage(inttostr(Document.DocumentElement.ChildNodes['gpx'].ChildNodes.Count));
    // Beiträge anfügen
    //for i := 0 to Document.DocumentElement.ChildNodes['wpt'].ChildNodes.Count -1 do
    //Memo3.Lines.Add(Document.DocumentElement.ChildNodes['wpt'].ChildNodes[i].Attributes['lat']);
  end;

end;

Hier ein auszug aus der GPX Datei

Code:
<?xml version="1.0"?>
<gpx
 version="1.0"
 creator="ExpertGPS 1.1 - http://www.topografix.com"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
<time>2002-02-27T17:18:33Z</time>
<bounds minlat="42.401051" minlon="-71.126602" maxlat="42.468655" maxlon="-71.102973"/>
<wpt lat="42.438878" lon="-71.119277">
 <ele>44.586548</ele>
 <time>2001-11-28T21:05:28Z</time>
 <name>5066</name>
 <desc><![CDATA[5066]]></desc>
 <sym>Crossing</sym>
 <type><![CDATA[Crossing]]></type>
</wpt>
<wpt lat="42.439227" lon="-71.119689">
 <ele>57.607200</ele>
 <time>2001-06-02T03:26:55Z</time>
 <name>5067</name>
 <desc><![CDATA[5067]]></desc>
 <sym>Dot</sym>
 <type><![CDATA[Intersection]]></type>
</wpt>
<wpt lat="42.438917" lon="-71.116146">
 <ele>44.826904</ele>
 <time>2001-11-16T23:03:38Z</time>
 <name>5096</name>
 <desc><![CDATA[5096]]></desc>
 <sym>Dot</sym>
 <type><![CDATA[Dot]]></type>
</wpt>
<wpt lat="42.443904" lon="-71.122044">
 <ele>50.594727</ele>
 <time>2001-11-28T21:05:28Z</time>
 <name>5142</name>
 <desc><![CDATA[5142]]></desc>
 <sym>Dot</sym>
 <type><![CDATA[Dot]]></type>
</wpt>
<wpt lat="42.447298" lon="-71.121447">
 <ele>127.711200</ele>
 <time>2001-06-02T03:26:58Z</time>
 <name>5156</name>
 <desc><![CDATA[5156]]></desc>
 <sym>Dot</sym>
 <type><![CDATA[Intersection]]></type>
</wpt>
....
<rte>
 <name>BELLEVUE</name>
 <desc><![CDATA[Bike Loop Bellevue]]></desc>
 <number>1</number>
<rtept lat="42.430950" lon="-71.107628">
 <ele>23.469600</ele>
 <time>2001-06-02T00:18:15Z</time>
 <name>BELLEVUE</name>
 <cmt>BELLEVUE</cmt>
 <desc><![CDATA[Bellevue Parking Lot]]></desc>
 <sym>Parking Area</sym>
 <type><![CDATA[Parking]]></type>
</rtept>
</rte>
</gpx>
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat