![]() |
Re: Simple XML Datei darstellen
Larsi, mir scheint, als ob Du weder die F1-Taste, noch Google kennst. Wenn das Dokument nicht aktiv (engl: 'active') ist, dann könnte das auf eine besondere Eigenschaft (engl: 'Property') der Klasse hinweisen, die irgendetwas mit dieser Meldung zu tun hat. Da zudem in der Meldung steht, dass das Dokument 'nicht' aktiv ist (sonst sind keine weiteren Werte zu sehen), könnte es sich also um einen Wahrheitswert (engl: 'boolean') handeln.
Brauchst Du noch mehr Unterstützung? |
Re: Simple XML Datei darstellen
Und ansonsten: Wie wäre es so?
Delphi-Quellcode:
var
MyXml: IXMLDocument; HttpLoader: TIdHTTP; MemStream: TMemoryStream; CurrentNode: IXMLNode; begin MyXml := NewXMLDocument(''); MemStream := TMemoryStream.Create; try HttpLoader := TIdHTTP.Create; try HttpLoader.Get('http://xml.utrace.de/?query=www.utrace.de', MemStream); finally HttpLoader.Free; end; MemStream.Position := 0; MyXml.LoadFromStream(MemStream); finally MemStream.Free; end; CurrentNode := MyXml.ChildNodes.FindNode('results'); if CurrentNode <> nil then CurrentNode := CurrentNode.ChildNodes.FindNode('result'); if CurrentNode <> nil then ShowMessage(CurrentNode.ChildNodes.FindNode('ip').Text); |
Re: Simple XML Datei darstellen
[werbung]
![]()
Delphi-Quellcode:
[/werbung]
Var XML: TXMLFile;
XML := TXMLFile.Create; XML.asXML := MyIdHttp.Get('http://...'); With XML.RootNode.Node['result'] do Begin //With XML.Nodes['results\result'] do Begin S := Node['ip'].Data; S := Node['host'].Data; //... End; XML.Free; und mit MS-Mitteln, eventuell auch so ähnlich
Delphi-Quellcode:
Var XML: IXMLDocument; // Var XML: TXMLDocument;
XML := TXMLDocument.Create(nil); XML.Active := True; XML.LoadFromXML(MyIdHttp.Get('http://...')); With XML.DocumentElement.ChildNodes['result'] do Begin S := ChildNodes['ip'].Text; S := ChildNodes['host'].Text; //... End; //XML.Free; |
Re: Simple XML Datei darstellen
Zitat:
Cheers, |
Re: Simple XML Datei darstellen
hmmmm ... das TXMLDocument von Delphi kapselt eigentlich nur das im Windows installierte MSXML.
man kann es zwar umstellen, indem man ihm einen anderen DOMVendor zuweißt (also auf Irgendwas, welches die IXMLDocument-Schnittstelle unterstützt) OmniXML ist etwa mit den selben Schnittstellen definiert und kann entweder eine eigene DOM nutzen oder auch nur an das MSXML weiterleiten. (soweit ich das verstanden hab) |
Re: Simple XML Datei darstellen
Zitat:
Die IDE bevorzugt msxmldom, indem sie die Unit msxmldom in die uses Liste einfügt, wenn man eine TXMLDocument Komponente auf ein Formular legt und dann kompiliert. Wenn man ohne Formular arbeitet und die Komponente zur Laufzeit erzeugt, muss man neben XMLdoc.pas noch entweder msxmldom oder oxmldom oder xercesxmldom.pas einbinden. Die DOM Implementationen registrieren sich automatisch als DOM Vendor (im initialization Abschnitt). TXMLDocument ist sozusagen nur der abstrakte Container für eine der konkreten Implementierungen. |
Re: Simple XML Datei darstellen
Also ganz egal wie TXMLDocument funktioniert (manchmal auf anderen Rechnern plötzlich nicht)...
himXML hat meiner Meinung nach für Einsteiger durchaus Vorteile. - Nur simples Unit einbinden ohne Rahmenbedingungen beachten zu müssen. - einfach (ich finde sogar sehr einfach) zu bedienen - Der Programmiert tummelt sich hier (für bohrende Fragen) im Forum rum ;) |
Re: Simple XML Datei darstellen
hab mal in mein Testprojekt Xerces und OpenXML eingebaut
und ich muß sagen ... die stürzen beide ab :shock: ich lad es demnächst nochma hoch, dann kann ja jeder mal nachsehn ... vielleicht findet ja wer den "Fehler" > also im nächsten Update vom himXML > Datei CheckLibs.dpr |
Re: Simple XML Datei darstellen
Liste der Anhänge anzeigen (Anzahl: 1)
OK, mit'm nächsten Update wird es noch nichts, aber hier mal das Testprogramm.
Keine AHnung, ob man da was anders machen muß, aber ich hab diese Libs genauso behandelt wie MSXML (es läuft sogar über den selben Code) und werd' mit Exceptions zugemüllt auch wenn ich schonmal sagen muß, das was davon läuft, lief zumindestens etwas schneller/besser als MSXML :-D nötig: himXML (da es in dem, zum himXML gehörenden Testprogramm nicht vorgesehn ist, dieses abzuschalten) > ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz