AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

In GPX (XML) Datei anzahl Nodes auslesen

Ein Thema von hedie · begonnen am 25. Aug 2011 · letzter Beitrag vom 26. Aug 2011
Antwort Antwort
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
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.509 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: In GPX (XML) Datei anzahl Nodes auslesen

  Alt 25. Aug 2011, 18:43
Zitat:
Delphi-Quellcode:
Node := ChildNodes['wpt']; // aka Node := ChildNodes.Nodes['wpt']; da Nodes = Default-Property
i := Node.ChildNodes.Count;
Ich denke du willst die Anzahl der wpt-Nodes und nicht die Anzahl der Childnodes des ersten wpt-Node?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list

Geändert von himitsu (25. Aug 2011 um 18:52 Uhr)
  Mit Zitat antworten Zitat
hedie

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

AW: In GPX (XML) Datei anzahl Nodes auslesen

  Alt 25. Aug 2011, 19:58
Jawohl so ist es

Aber wie krieg ich diese Anzahl?
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#4

AW: In GPX (XML) Datei anzahl Nodes auslesen

  Alt 25. Aug 2011, 20:00
Delphi-Quellcode:
  WPTCount:=0;
  for n:=0 to Document.ChildNodes.Count-1 do
    if Document.ChildNodes[n].NodeName='wpt
      then Inc(WPTCount);
Aber wie krieg ich diese Anzahl?
Das ist typisch für dieses Forum: Viele Antworten auf Fragen, die nie gestellt wurden...
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.509 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: In GPX (XML) Datei anzahl Nodes auslesen

  Alt 25. Aug 2011, 20:57
Mir fiehl/fällt einfach der Befehl nicht ein, über das Stichwort "XPath" solte sich im Forum was finden lassen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#6

AW: In GPX (XML) Datei anzahl Nodes auslesen

  Alt 26. Aug 2011, 03:33
Kürzere Lösung:
Delphi-Quellcode:
  Document.DOMDocument.DocumentElement.GetElementsByTagName('wpt').Length;
  //...
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.509 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: In GPX (XML) Datei anzahl Nodes auslesen

  Alt 26. Aug 2011, 08:58
GetElementsByTagName ... ich wußte doch, daß MSXML irgendwo sowas hat ... nur finden muß man es erstmal
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#8

AW: In GPX (XML) Datei anzahl Nodes auslesen

  Alt 26. Aug 2011, 11:21
War auch nur Zufall, daß ich das gefunden habe...
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf