AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auslesen von Werten in einer XML

Ein Thema von keine_ahnung · begonnen am 1. Jan 2011 · letzter Beitrag vom 2. Jan 2011
Antwort Antwort
keine_ahnung

Registriert seit: 5. Mär 2009
5 Beiträge
 
#1

Auslesen von Werten in einer XML

  Alt 1. Jan 2011, 22:24
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:
<?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>
Wie komme ich an die longitude und latitude ran?
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
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: Auslesen von Werten in einer XML

  Alt 1. Jan 2011, 22:28
Hallo...

am besten benutzt du eine XML Biblothek.
- himXML http://www.delphipraxis.net/130751-h...-himix-ml.html
- wenn du die Jedies hast JvSimple XML

...beschäftige dich mal damit und wenn du dann konkrete Fragen bei der Umsetzung hast...nachfragen
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Auslesen von Werten in einer XML

  Alt 1. Jan 2011, 22:48
Delphi hat von zu Hause aus auch eine Möglichkeit auf XML zuzugreifen: TXMLDocument. Spart weitere Komponentenlibs.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Auslesen von Werten in einer XML

  Alt 1. Jan 2011, 23:16
http://www.delphipraxis.net/82664-op...-tutorial.html
http://www.delphipraxis.net/7356-xml-tutorial.html

Das OpenXML-Tut kann man auch Teilweise auf MSXML (TXMLDocument / IXMLDocument / IXMLDOMDocument) anwenden.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#5

AW: Auslesen von Werten in einer XML

  Alt 1. Jan 2011, 23:54
Delphi hat von zu Hause aus auch eine Möglichkeit auf XML zuzugreifen: TXMLDocument. Spart weitere Komponentenlibs.
...hab ich mit Absicht nicht erwähnt, da ich schon bei den einfachsten Sachen mit ganz blöden Fehlern (interne Speicherverwaltung) zu kämpfen hatte und die Bibliothek sehr komplex ist.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Auslesen von Werten in einer XML

  Alt 2. Jan 2011, 02:32
Für das bisschen da oben sollte es reichen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#7

AW: Auslesen von Werten in einer XML

  Alt 2. Jan 2011, 09:47
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.
  Mit Zitat antworten Zitat
keine_ahnung

Registriert seit: 5. Mär 2009
5 Beiträge
 
#8

AW: Auslesen von Werten in einer XML

  Alt 2. Jan 2011, 19:05
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:
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;
und hier die verwendete GPX bzw XML datei

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>
  Mit Zitat antworten Zitat
FrankJ28

Registriert seit: 7. Apr 2008
211 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Auslesen von Werten in einer XML

  Alt 2. Jan 2011, 19:30
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
"Sage was du tust, und tue was du sagst"
Johannes Rau
  Mit Zitat antworten Zitat
keine_ahnung

Registriert seit: 5. Mär 2009
5 Beiträge
 
#10

AW: Auslesen von Werten in einer XML

  Alt 2. Jan 2011, 20:11

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!
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz