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 2 von 2     12   
zeras

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

AW: XML-Datei einlesen

  Alt 5. Dez 2021, 17:48
Warum fragst du die Zeit
 GetNamedItem('Cube time').NodeValue;

so ab, aber Currency mit

 GetNamedItem('currency').NodeValue
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
704 Beiträge
 
Delphi 12 Athens
 
#12

AW: XML-Datei einlesen

  Alt 6. Dez 2021, 16:03
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.
Wer immer dieses Format entwickelt hat sollte standrechtlich erschossen werden .
Code:
   <Cube>
      <Cube time='2021-12-03'>
         <Cube currency='USD' rate='1.1291'/>
         <Cube currency='JPY' rate='127.97'/>
         <Cube currency='BGN' rate='1.9558'/>
         <Cube currency='CZK' rate='25.415'/>
         <Cube currency='DKK' rate='7.4362'/>
         <Cube currency='GBP' rate='0.85048'/>
      </Cube>
   </Cube>
Es gibt hier drei verschiedene Typen von "Cube"-Nodes, und damit kommt nicht mal der XML Data Binding Wizard von Delphi klar.

Das hier scheint zu funktionieren:

Delphi-Quellcode:
procedure TForm1.Display(const Fmt: string; const Values: array of const);
begin
  memo1.Lines.Add(Format(Fmt, Values));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  LEnvelope: IXMLDocument;
  LOuterCube: IXMLNode;
  LTimeCube: IXMLNode;
  LCurrencyCube: IXMLNode;
begin
  LEnvelope := TXmlDocument.Create(nil);
  LEnvelope.LoadFromFile('C:\Users\Peter_2\Downloads\eurofxref-daily.xml');
  LEnvelope.Active := True;
  memo1.Clear;
  LOuterCube := LEnvelope.DocumentElement.ChildNodes[2];
  LTimeCube := LOuterCube.ChildNodes[0];

  Display('Date: %s', [LTimeCube.Attributes['time']]);
  LCurrencyCube := LTimeCube.ChildNodes[0];
  while Assigned(LCurrencyCube) do begin
    Display('Currency: %s; Rate: %s',
      [LCurrencyCube.Attributes['currency'],
       LCurrencyCube.Attributes['rate']] );
    LCurrencyCube := LCurrencyCube.NextSibling;
  end;
end;
Peter Below
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:11 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