![]() |
In GPX (XML) Datei anzahl Nodes auslesen
Hallo zusammen
Ich versuche die Anzahl der WPT Nodes in einer GPX (XML) Datei auszulesen... Also wie oft ein solcher Block vorkommt:
Code:
Irgendwie schaffe ich es nicht die Anzahl auszulesen...
<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> Mit
Delphi-Quellcode:
Erhalte ich die Anzahl (6) innerhalb von wpt
showmessage(inttostr(Document.DocumentElement.ChildNodes['wpt'].ChildNodes.Count));
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> |
AW: In GPX (XML) Datei anzahl Nodes auslesen
Zitat:
|
AW: In GPX (XML) Datei anzahl Nodes auslesen
Jawohl so ist es :)
Aber wie krieg ich diese Anzahl? |
AW: In GPX (XML) Datei anzahl Nodes auslesen
Delphi-Quellcode:
WPTCount:=0;
for n:=0 to Document.ChildNodes.Count-1 do if Document.ChildNodes[n].NodeName='wpt' then Inc(WPTCount); Zitat:
|
AW: In GPX (XML) Datei anzahl Nodes auslesen
Mir fiehl/fällt einfach der Befehl nicht ein, über das Stichwort "XPath" solte sich im Forum was finden lassen.
|
AW: In GPX (XML) Datei anzahl Nodes auslesen
Kürzere Lösung:
Delphi-Quellcode:
Document.DOMDocument.DocumentElement.GetElementsByTagName('wpt').Length;
//... |
AW: In GPX (XML) Datei anzahl Nodes auslesen
GetElementsByTagName ... ich wußte doch, daß MSXML irgendwo sowas hat ... nur finden muß man es erstmal :oops:
|
AW: In GPX (XML) Datei anzahl Nodes auslesen
War auch nur Zufall, daß ich das gefunden habe... :?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz