Re: Wie XML Rückgabe aus post weiterverarbeiten
Zitat:
Es gibt doch bei dir keine Attribut, sondern nur Nodes. :wall: 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? :gruebel: (nja, ich komm mit diesem komischem MSXML-DOM auch nich ganz zurecht, drum bau ich mir ja etwas, womit ich klarkomm :freak: ) |
Re: Wie XML Rückgabe aus post weiterverarbeiten
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; |
Re: Wie XML Rückgabe aus post weiterverarbeiten
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 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