AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Wie XML Rückgabe aus post weiterverarbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

Wie XML Rückgabe aus post weiterverarbeiten

Ein Thema von p.sprick · begonnen am 16. Sep 2009 · letzter Beitrag vom 17. Sep 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#11

Re: Wie XML Rückgabe aus post weiterverarbeiten

  Alt 17. Sep 2009, 10:55
Zitat von p.sprick:
Geht es nicht irgendwie über dn.attributes.attributesbyname([NAME]) oder
dn.attributes[1].value oder ähnlich?
Ach menno, wer ist denn hier auf die blöde Idee mit den Attributen gekommen?

Es gibt doch bei dir keine Attribut, sondern nur Nodes.

PS: dl1[j].attributes wäre dn.attributes gewesen, aber da "NAME" ein Node ist,
würde es dn.childNodes sein.

.childNodes ist 'ne IDOMNodeList und die bietet aber nur (jedenfalls nach der Interface-Definition, welche ich grad vor mir hab) den Zugriff via Index und nicht über den NodeName ... da wird es wohl/hoffentlich irgendwo anders eine "Namenssuche" gegen?

(nja, ich komm mit diesem komischem MSXML-DOM auch nich ganz zurecht, drum bau ich mir ja etwas, womit ich klarkomm )
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
p.sprick

Registriert seit: 29. Jan 2009
20 Beiträge
 
#12

Re: Wie XML Rückgabe aus post weiterverarbeiten

  Alt 17. Sep 2009, 11:37
Hallo Leute,
speziellen Dank an Himitsu der XML-Guru.

Ich habe es jetzt mit IXMLDOM geloest.
hier der komplette Code mit Abruf der Daten aus dem Internet!
Es geht bestimmt eleganter, aber es funktioniert.
Für Anregungen habe ich immer ein Ohr offen!

Gruss Paul

Delphi-Quellcode:
procedure TForm4.Button1Click(Sender: TObject);
Const
   Filename = 'c:\temp\testxml.xml';
var
  FileStream :tfilestream; //* Ausgabe der Aufgerufene Seite
  i,j :Integer; // * Zähler für die For-Schleife
  DataStream :TIdMultiPartFormDataStream; //* Übergabe Stream für Aufgerufene Seite
  xpath :string;

  doc : IXMLDOMDocument; //* XL DAtei
  categories,name : IXMLDOMNodeList; //* enthält nodes
  subNode : IXMLDOMNode; //* enthält eine Node

begin
  FileStream := TFileStream.create(Filename,fmCreate or fmOpenWrite or fmShareDenyWrite);
  DataStream:=TIdMultiPartFormDataStream.Create;

  IdHTTP1.Request.ContentType:='multipart/form-data';
  DataStream.addformfield('user','benutzer'); //Post-Daten in die StringList eintragen
  DataStream.addformfield('password','password');
  DataStream.addformfield('action','lese_kategorie');

  idHTTP1.Post('http://localhost\export\test.php',Datastream,FileStream);//Datei abrufen
  filestream.free;
  doc := CoDOMDocument.Create;
  doc.async:=false;
  doc.load(filename);
  xPath := '/CATEGORIES/CATEGORIES_DATA/ID';
  categories := doc.selectNodes(xpath);
  for i := 0 to Pred(categories.length) do
  begin
              xPath := format('/CATEGORIES/CATEGORIES_DATA[%d]/ID',[i]);
              subnode:= doc.selectsinglenode(xpath);
              Memo1.Lines.add('Kategorie: '+ string(subnode.Text)+' gespeichert !');
              xpath := Format('/CATEGORIES/CATEGORIES_DATA[%d]/NAMES/NAMEENTRY',[i]);
              name:= doc.selectNodes(xPath);
              for j:= 0 to pred(name.length) do begin
                   xpath := Format('/CATEGORIES/CATEGORIES_DATA[%d]/NAMES/NAMEENTRY[%d]/LANGUAGEID',[i,j]);
                   subnode := doc.selectsinglenode(xpath);
                   Memo1.lines.add('Sprache : '+string(subnode.text));
                   xpath := Format('/CATEGORIES/CATEGORIES_DATA[%d]/NAMES/NAMEENTRY[%d]/NAME',[i,j]);
                   subnode := doc.selectsinglenode(xpath);
                   Memo1.lines.add('Name : '+string(subnode.text));
              end; //* for j
  end; //* for i
  filestream.free;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#13

Re: Wie XML Rückgabe aus post weiterverarbeiten

  Alt 17. Sep 2009, 11:40
Ein paar Try-Finally können nicht schaden, da du ja "unkontrolliert" externe Daten einließt.
Damit die ganzen erstellen Objekte auch bei einer Exception noch ordnungsgemäß entsorgt werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 21:06 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