Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Problem beim Auslesen einer XML Datei (https://www.delphipraxis.net/181020-problem-beim-auslesen-einer-xml-datei.html)

ChristianG 9. Jul 2014 08:22

Problem beim Auslesen einer XML Datei
 
Guten Morgen. Ich habe ein kleines Problem beim Auslesen von einer XML Datei aus dem Internet. Der Aufbau der XML-Datei ist wie folgt:

<Show ID="250895">//Die ShowID muss herausgelesen werden
<SiteID>100004</SiteID>
<EventID>103996</EventID>
<EventName>Chasing the Wind</EventName>
<Medianumber>72977</Medianumber>
<Exportnumber>72977</Exportnumber>
<LanguageVersionID>14327</LanguageVersionID>

Die ShowID möchte ich in einem ClientDataSet geschrieben haben. Mein Problem ist der, dass ich die Show ID nicht einfach so mit
cdsShows.Append;
Delphi-Quellcode:
 cdsShows.FieldByName('Position').asInteger := i;
    cdsShows.FieldByName('ShowTime').AsDateTime := GetShowDateTime(sTime);
    cdsShows.FieldByName('ShowID').AsString :=node.ChildNodes.FindNode('Show ID').Text;
    cdsShows.Post;
abfragen kann. Hat jemand eine Lösung wie ich die ShowID anders herausbekomme? Ich hab auch versucht eine Funktion zu schreiben, die die ShowID herausliest, aber bisher Ohne Erfolg.
Für Hilfe wäre ich echt dankbar.
Mit Freundlichen Grüßen
Christian

baumina 9. Jul 2014 08:32

AW: Problem beim Auslesen einer XML Datei
 
Der Knoten heißt "Show" und ein Attribut davon heißt "ID". Du findest sicher in den weiten des Internets genug Beispiele wie man ein Attribut aus einem Knoten liest.

ChristianG 9. Jul 2014 08:39

AW: Problem beim Auslesen einer XML Datei
 
Zitat:

Zitat von baumina (Beitrag 1264878)
Der Knoten heißt "Show" und ein Attribut davon heißt "ID". Du findest sicher in den weiten des Internets genug Beispiele wie man ein Attribut aus einem Knoten liest.

Ich hab schon im Internet gesucht, dennoch nichts für mich brauchbares gefunden. Mein Problem ist nur,dass die ShowID nicht <dort drinnen > Lösung<dort drinnen > steht, sondern <Hierdrinnen="Lösung"> steht. Ich habe es auch schon mit ID Probiert, dennoch wird diese ID nicht herausgelesen.
Danke Für deine schnelle Antwort
Gruß

baumina 9. Jul 2014 08:52

AW: Problem beim Auslesen einer XML Datei
 
Nur mal so hingeschrieben (also ohne Gewähr)

Delphi-Quellcode:
cdsShows.FieldByName('ShowID').AsString := node.ChildNodes.FindNode('Show').Attributes['ID'];

ChristianG 9. Jul 2014 08:56

AW: Problem beim Auslesen einer XML Datei
 
Zitat:

Zitat von baumina (Beitrag 1264881)
Nur mal so hingeschrieben (also ohne Gewähr)

Delphi-Quellcode:
cdsShows.FieldByName('ShowID').AsString := node.ChildNodes.FindNode('Show').Attributes['ID'];

Leider geht dies auch nicht. Diese Fehlermeldung kommt beim Auswerten von deinem Vorschlag : Ungültiger Ausdruck im Evaluator. Bei dieser Fehlermeldung scheitere ich schon seit Stunden.
Dennoch danke ich dir für deine Hilfe.
Gruß

Headbucket 9. Jul 2014 09:05

AW: Problem beim Auslesen einer XML Datei
 
Zitat:

Zitat von ChristianG (Beitrag 1264879)
Ich hab schon im Internet gesucht, dennoch nichts für mich brauchbares gefunden.

Hier findest du meiner Meinung nach ein sehr gutes Tutorial für den Einstieg Delphi - XML.

Um dir weiterzuhelfen, wäre es sicher nicht verkehrt, wenn du etwas mehr Code posten könntest.

Grüße

ChristianG 9. Jul 2014 09:07

AW: Problem beim Auslesen einer XML Datei
 
Ich habe die Lösung
Delphi-Quellcode:
   cdsShows.FieldByName('ShowID').AsString := XMLDocument1.DocumentElement.ChildNodes.Findnode('Show').Attributes['ID'] ;
Danke für deine Hilfe und einen schönen Tag dir.:wink:
Gruß

ChristianG 9. Jul 2014 15:14

AW: Problem beim Auslesen einer XML Datei
 
Delphi-Quellcode:
 var sURL : string;
 // value: Tvalue;
    sAllTimes, sTime,sID,Delimiter, sOutput : string;
    i : integer;
    node : IXMLNode;
    sDateAlt, sDate : string;
begin
  Delimiter := '';
  sAllTimes := '';
  sDateAlt := '';
  sURL := 'http://kinobox.net:11800/1.0/shows?siteid=100004&eventid=' + IntToStr(aEventID) + '&from='+ FormatDateTime('YYYY-MM-DD', date) +'&to='+ FormatDateTime('YYYY-MM-DD', date + 14) +'&apikey=2013dolphinV8';
  sOutput := idHTTP1.Get(sURL);

  XMLDocument1.XML.Text := sOutput;
  XMLDocument1.Active := true;

  // ueber all knoten laufen
  for i := 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
    node := XMLDocument1.DocumentElement.ChildNodes.Get(i);

    // für jeden Knoten die Uhrzeit (Showtime) und die ShowID rauslesen
    // Showtime in der Oberfläche anzeigen
    sTime := node.ChildNodes.FindNode('ShowTime').Text;
    sDate := CutDate(sTime, sDateAlt);


    // eintrag ins dataset schreiben. append, fieldbyname, post
      cdsShows.Append;
    cdsShows.FieldByName('Position').asInteger := i;
    cdsShows.FieldByName('ShowTime').AsDateTime := GetShowDateTime(sTime);
    cdsShows.FieldByName('ShowID').AsInteger := node.ChildNodes.FindNode('Show').Attributes['ID'];//geht nicht //XMLDocument1.DocumentElement.ChildNodes.Findnode('Show').Attributes['ID'] ;
    cdsShows.Post;
    Grid2.RowCount := XMLDocument1.DocumentElement.ChildNodes.Count;
  end;
end;
Ich komme nicht weiter... Es funktioniert nur mit
Delphi-Quellcode:
XMLDocument1.DocumentElement.ChildNodes.Findnode('Show').Attributes['ID']
Aber dort wird die Position nicht abgefragt, die ich unbedingt benötige, um eine URL daraus zu machen
Delphi-Quellcode:
  bURL   := 'http://kinobox.net:11800/1.0/shows/' + InttoStr(ShowID) + '/tickets?apikey=2013dolphinV8';
Kann mir jemand helfen?
Gruß

ChristianG 9. Jul 2014 15:37

AW: Problem beim Auslesen einer XML Datei
 
Habs hinbekommen...
Die Lösung ist
Delphi-Quellcode:
cdsShows.FieldByName('ShowID').AsString := node.Attributes['ID']
:-D
Warum bin ich nicht früher drauf gekommen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 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