AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Problem beim Auslesen einer XML Datei

Problem beim Auslesen einer XML Datei

Offene Frage von "ChristianG"
Ein Thema von ChristianG · begonnen am 9. Jul 2014 · letzter Beitrag vom 9. Jul 2014
Antwort Antwort
ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#1

Problem beim Auslesen einer XML Datei

  Alt 9. Jul 2014, 09:22
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
Christian
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Problem beim Auslesen einer XML Datei

  Alt 9. Jul 2014, 09:32
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.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#3

AW: Problem beim Auslesen einer XML Datei

  Alt 9. Jul 2014, 09:39
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ß
Christian
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Problem beim Auslesen einer XML Datei

  Alt 9. Jul 2014, 09:52
Nur mal so hingeschrieben (also ohne Gewähr)

cdsShows.FieldByName('ShowID').AsString := node.ChildNodes.FindNode('Show').Attributes['ID'];
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#5

AW: Problem beim Auslesen einer XML Datei

  Alt 9. Jul 2014, 09:56
Nur mal so hingeschrieben (also ohne Gewähr)

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ß
Christian
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Problem beim Auslesen einer XML Datei

  Alt 9. Jul 2014, 10:05
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
  Mit Zitat antworten Zitat
ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#7

AW: Problem beim Auslesen einer XML Datei

  Alt 9. Jul 2014, 10:07
Ich habe die Lösung
   cdsShows.FieldByName('ShowID').AsString := XMLDocument1.DocumentElement.ChildNodes.Findnode('Show').Attributes['ID'] ; Danke für deine Hilfe und einen schönen Tag dir.
Gruß
Christian

Geändert von ChristianG ( 9. Jul 2014 um 16:09 Uhr)
  Mit Zitat antworten Zitat
ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#8

AW: Problem beim Auslesen einer XML Datei

  Alt 9. Jul 2014, 16:14
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
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
  bURL := 'http://kinobox.net:11800/1.0/shows/' + InttoStr(ShowID) + '/tickets?apikey=2013dolphinV8'; Kann mir jemand helfen?
Gruß
Christian
  Mit Zitat antworten Zitat
ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#9

AW: Problem beim Auslesen einer XML Datei

  Alt 9. Jul 2014, 16:37
Habs hinbekommen...
Die Lösung ist
cdsShows.FieldByName('ShowID').AsString := node.Attributes['ID']
Warum bin ich nicht früher drauf gekommen...
Christian
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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