AGB  ·  Datenschutz  ·  Impressum  







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

XML-Datei einlesen

Ein Thema von Adenos · begonnen am 5. Dez 2021 · letzter Beitrag vom 6. Dez 2021
Antwort Antwort
Seite 1 von 2  1 2      
Adenos

Registriert seit: 5. Dez 2021
9 Beiträge
 
#1

XML-Datei einlesen

  Alt 5. Dez 2021, 13:53
Hallo,

ich habe eine XML-Datei mit folgendem Inhalt:
<Cube>
<Cube time='2021-12-03'>
<Cube currency='USD' rate='1.1291'/>
<Cube currency='JPY' rate='127.97'/>
<Cube currency='BGN' rate='1.9558'/>
usw.
wie kann ich die "Cube time" in einem Label darstellen?
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 16:05
Schau dir mal das IXmlDocument Interface an. Damit kannst du deine XML Datei einlesen und dann über die Nodes iterieren. Beim Iterieren musst du dann nach dem time Attribut Ausschau halten das du einlesen willst.

Edit: Ich kenne zwar nicht den genauen Anwendungsfall, aber ich hab das Gefühl, dass der Aufbau der XML Datei etwas komisch ist. Ist das eine Vorgabe eines anderen Programms oder hast du die selbst gemacht?

Ein Aufbau in dieser Form wäre sicherlich besser einlesbar.

XML-Code:
<cube time='2021-12-03'>
    <currency name='USD' rate='1.1291'/>
    <currency name='JPY' rate='127.97'/>
    <currency name='BGN' rate='1.9558'/>
</cube>

Geändert von Aviator ( 5. Dez 2021 um 16:09 Uhr)
  Mit Zitat antworten Zitat
Adenos

Registriert seit: 5. Dez 2021
9 Beiträge
 
#3

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 16:22
das XML-Dokument ist nicht selbst gemacht. Auf der Seite http://www.ecb.europa.eu/stats/eurof...xref-daily.xml veröffentlicht die EZB einmal täglich die aktuellen Euro-Kurse. Beim Einlesen der eigentlichen Kurse hat mir schon jemand geholfen, aber das mit dem Datum bekomme ich nicht auf die Reihe.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#4

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 16:35
Für das Datum nimmst du StrToDate.
Dann hast du einen TDateTime Wert, den du dann beliebig anzeigen lassen kannst.
Bei den AFormatSettings: TFormatSettings musst du die Settings so eintragen, wie in deinem Beispiel angegeben.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Adenos

Registriert seit: 5. Dez 2021
9 Beiträge
 
#5

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 16:41
vielen Dank, aber ich weiß nicht, wie ich auf das Feld cube time zugreifen kann.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 16:55
Time ist ein Attribute des Nodes Cube. Wie liest du denn aktuell die Daten ein? Sicherlich nutzt du eine Klasse in der es ein Attribute Property gibt.
  Mit Zitat antworten Zitat
Adenos

Registriert seit: 5. Dez 2021
9 Beiträge
 
#7

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 16:59
die Kurse lese ich so ein:
with Doc.DocumentElement.FindNode('Cube').FirstChild.Ch ildNodes do
begin
for i := 0 to (Count - 1) do
begin
Memo1.Lines.Add(Item[i].Attributes.GetNamedItem('currency').NodeValue +
':' + Item[i].Attributes.GetNamedItem('rate').NodeValue);
end;
end;
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#8

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 17:04
Versuche es doch mal so: Memo1.Lines.Add(Item[0].Attributes.GetNamedItem('time').NodeValue
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 17:09
Aber Achtung bei nicht vorhandenen Attributen. Ggf. sollte vorher mit HasAttribute() geprüft werden ob das Attribut überhaupt existiert. Oder anders herum ob die Rückgabe nicht nil ist.
  Mit Zitat antworten Zitat
Adenos

Registriert seit: 5. Dez 2021
9 Beiträge
 
#10

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 17:38
das Programm hat eine Exception-Klasse "External: SIGSEGV" ausgelöst in der Zeile:
LabelEZBDatum.Caption:=Doc.DocumentElement.Attribu tes.GetNamedItem('Cube time').NodeValue;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:49 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