![]() |
XML-Datei einlesen
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? |
AW: XML-Datei einlesen
Schau dir mal das
![]()
Delphi-Quellcode:
Interface an. Damit kannst du deine XML Datei einlesen und dann über die Nodes iterieren. Beim Iterieren musst du dann nach dem
IXmlDocument
Delphi-Quellcode:
Attribut Ausschau halten das du einlesen willst.
time
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> |
AW: XML-Datei einlesen
das XML-Dokument ist nicht selbst gemacht. Auf der Seite
![]() |
AW: XML-Datei einlesen
Für das Datum nimmst du
![]() Dann hast du einen TDateTime Wert, den du dann beliebig anzeigen lassen kannst. Bei den
Delphi-Quellcode:
musst du die Settings so eintragen, wie in deinem Beispiel angegeben.
AFormatSettings: TFormatSettings
|
AW: XML-Datei einlesen
vielen Dank, aber ich weiß nicht, wie ich auf das Feld cube time zugreifen kann.
|
AW: XML-Datei einlesen
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.
|
AW: XML-Datei einlesen
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; |
AW: XML-Datei einlesen
Versuche es doch mal so:
Delphi-Quellcode:
Memo1.Lines.Add(Item[0].Attributes.GetNamedItem('time').NodeValue
|
AW: XML-Datei einlesen
Aber Achtung bei nicht vorhandenen Attributen. Ggf. sollte vorher mit
Delphi-Quellcode:
geprüft werden ob das Attribut überhaupt existiert. Oder anders herum ob die Rückgabe nicht
HasAttribute()
Delphi-Quellcode:
ist.
nil
|
AW: XML-Datei einlesen
das Programm hat eine Exception-Klasse "External: SIGSEGV" ausgelöst in der Zeile:
LabelEZBDatum.Caption:=Doc.DocumentElement.Attribu tes.GetNamedItem('Cube time').NodeValue; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 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