![]() |
Auslesen von Werten in einer XML
Hallo
hab mal wieder ein problem, dieses mal steh ich so richtig auf dem Schlauch. ich hab eine XML-Datei und würde gerne die Werte auslesen um sie weiter zu benutzen. Hier die XML-Datei.
Code:
Wie komme ich an die longitude und latitude ran?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Tour> <RouteOptions> <NaviMode value="motorbike"/> <OptimizationMode value="short"/> <TTIBypass mode="avoid" calculation="automatic"/> <RoadUsageTypes> <MotorWays mode="avoid"/> <TollRoads mode="avoid"/> <SpecialChargeRoads mode="avoid"/> <Ferries mode="avoid"/> <Tunnels mode="use"/> <CarTrains mode="use"/> <SeasonalRestrictedRoads mode="use"/> <TimeRestrictedRoads mode="use"/> <UnpavedRoads mode="avoid"/> <IPDRoads mode="use"/> <TrafficFlowInfo mode="use"/> </RoadUsageTypes> <TravelSpeeds> <Vehicle unit="km_h" speed="80.0"> <MotorWay unit="km_h" speed="120.0"/> <PedestrianArea unit="km_h" speed="7.2"/> </Vehicle> <Bicycle unit="km_h" speed="14.4"/> <Pedestrian unit="km_h" speed="3.6"/> </TravelSpeeds> </RouteOptions> <Start> <Country/> <State/> <Zip/> <City name="NeuePosition 1"/> <Street/> <SideStreet/> <HouseNumber/> <Coordinates mercatory="6280369" mercatorx="1045711" longitude="9.4043" latitude="49.07386"/> </Start> <Destination> <Country/> <State/> <Zip/> <City name="NeuePosition 2"/> <Street/> <SideStreet/> <HouseNumber/> <Coordinates mercatory="6302766" mercatorx="991959" longitude="8.9209" latitude="49.20564"/> </Destination> </Tour> Würde gerne diese 2 Werte in eine Listbox schreiben. Ist das möglich? Primär interessiert mich wie ich auf diese Werte zugreifen kann. Kann mir jemand einen Tipp bzw. ein Beispiel bzw. Tutorien nennen? Würde mich sehr freuen. Beste Grüße chris |
AW: Auslesen von Werten in einer XML
Hallo...
am besten benutzt du eine XML Biblothek. - himXML ![]() - wenn du die Jedies hast JvSimple XML ...beschäftige dich mal damit und wenn du dann konkrete Fragen bei der Umsetzung hast...nachfragen :zwinker: |
AW: Auslesen von Werten in einer XML
Delphi hat von zu Hause aus auch eine Möglichkeit auf XML zuzugreifen: TXMLDocument. Spart weitere Komponentenlibs.
|
AW: Auslesen von Werten in einer XML
![]() ![]() Das OpenXML-Tut kann man auch Teilweise auf MSXML (TXMLDocument / IXMLDocument / IXMLDOMDocument) anwenden. |
AW: Auslesen von Werten in einer XML
Zitat:
|
AW: Auslesen von Werten in einer XML
Für das bisschen da oben sollte es reichen :)
|
AW: Auslesen von Werten in einer XML
Moin...
das war ja das Problem... eben nicht. Ich habe es nicht geschafft 2 Knoten (auch wenn es der selbe war) hintereinander auszulesen. Jedesmal nach dem ersten Lesen eines Knotens kam die Meldung "kein aktives XML Document". nach 3 Stunden hab ich genervt aufgegeben, da auch die Recherche zu diesem Problem nichts hervorbrachte. |
AW: Auslesen von Werten in einer XML
Hallo,
da bin ich wieder und ich hab mich damit etwas näher damit auseinander gesetzt. Zuerst einmal herzlichen Dank für die Hilfe. hab das hauseigene XMLDocument benutzt. Im ganzen macht es das was ich eigenltich möchte, nur kommt eine Fehlermeldung "Variante des Typ(Null) konnte nicht in Typ (String)konvertiert werden" Könnte mir bitte jemand behilflich sein und mir sagen, wo der Fehler versteckt ist? Ich hab eine Vermutung, wenn die Datei durchsucht wurde und keine lon bzw lat mehr da ist bringt er eine Fehlermeldung ist das so korrekt?
Code:
und hier die verwendete GPX bzw XML datei
procedure TForm1.Button3Click(Sender: TObject);
var i : Word; begin XMLDocument2.Active:= true; for i := 0 to XMLDocument2.DocumentElement.ChildNodes['Destination'].ChildNodes.Count -1 do Begin Listbox1.Items.Add(XMLDocument2.DocumentElement.ChildNodes[i].Attributes['lon']); Listbox2.Items.Add(XMLDocument2.DocumentElement.ChildNodes[i].Attributes['lat']); end; end;
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<gpx> <wpt lon="9.3438720703125" lat="48.90444878143716"> <ele>148.0</ele> <time>2011-01-02T14:23:31.234Z</time> <name>NeuePosition 1</name> </wpt> <wpt lon="8.909912109375" lat="49.005447494058096"> <ele>313.0</ele> <time>2011-01-02T14:24:51.187Z</time> <name>NeuePosition 2</name> </wpt> <wpt lon="8.778076171875" lat="48.72358515157852"> <ele>313.0</ele> <time>2011-01-02T14:24:51.187Z</time> <name>NeuePosition 3</name> </wpt> </gpx> |
AW: Auslesen von Werten in einer XML
Hallo,
Du iterierst durch die Knoten "Destination", in deinem Beispiel gibt es den Knoten nicht. Eigentlich dürfte deine Schleife nicht durchlaufen werden. Was sagt denn dein Debugger? Ciao Frank |
AW: Auslesen von Werten in einer XML
:wall:
Hallo FrankJ28, danke für den hinweis, das war ein Knoten von der XML Datei von oben. der Debugger läuft 3 mal die Schleife durch bringt dann die Fehlermeldung wenn man die Fehlermeldung weg klickt erscheint in den Listboxen die Werte. Hab "Destination" in "wpt" geändert und es kommt keine Fehlermeldung mehr Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 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-2025 by Thomas Breitkreuz