Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi RDF auslesen (https://www.delphipraxis.net/16168-rdf-auslesen.html)

MathiasSimmack 14. Feb 2004 17:15

Re: RDF auslesen
 
Ich glaube, du musst/darfst das auch nicht setzen, weil du ja ohnehin nicht mit XPath arbeitest. Das wollte ich dir ja eigentlich mit meinem letzten Posting sagen. Es spielt in diesem speziellen Fall nur eine Rolle, weil die XML-Datei, die vom Forum erzeugt wird, Namespaces benutzt. Den ersten für den Hauptknoten "RDF", den zweiten "erben" die ganzen anderen Knoten.

Bei deinem Weg spielt der Namespace keine Rolle. ;)

Claude 23. Feb 2004 21:22

Re: RDF auslesen
 
Hi,

neu registiert *wink* ;) - und schon eine Frage... :
Der Code hier:

Delphi-Quellcode:
  public
    XMLDoc: TDOMDocument50;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject);
begin
     ListBox1.Clear;
     Try
       If not XMLDoc.DefaultInterface.load('http://www.delphipraxis.com/rdf.php') then ShowMessage('False');
     Except
       on e : exception do showmessage(e.message);
     End;
end;

procedure TForm1.XMLDocondataavailable(Sender: TObject);
var
  xmlTopics : IXMLDOMNodeList;
  iCnt     : Integer;
  jCnt     : Integer;
begin
     If XMLDoc.DefaultInterface.parseerror.errorCode <> 0 then Exit;
     Try
       If XMLDoc.DefaultInterface.documentElement = Nil then Exit;
       xmlTopics:= xmlDoc.DefaultInterface.documentElement.childNodes; // Nur damit gehts - hier ist leider kein "XPath" verwendet.
//       xmlTopics:= XMLDoc.DefaultInterface.selectNodes('//item/title'); // Exception: Die für diesen Vorgang erforderlichen Daten sind noch nicht verfügbar
//       xmlTopics:= xmlDoc.DefaultInterface.documentElement.selectNodes('//*[name(.)="item"]/*[name(.)="title"]'); // Exception: die für diesen ...
     Except
       On E : Exception do ShowMessage(E.Message);
     End;

    For iCnt := 0 to xmlTopics.length-1
    do begin
         For jCnt:=0 to xmlTopics.item[iCnt].childNodes.length-1
           do ListBox1.Items.Add(xmlTopics.item[iCnt].childNodes.item[jCnt].Text+' : '+ xmlTopics.item[iCnt].childNodes.item[jCnt].nodeName);
         ListBox1.Items.Add('----');
       end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
     XMLDoc:= TDOMDocument50.Create(Self);
     XMLDoc.onondataavailable:= XMLDocondataavailable;
end;

end.
macht leider nicht ganz das was er soll.
Ich hab größtenteils das von weiter oben übernommen - leider wirft er ne Exception (s. Code).
Was tun?

Viele Grüße
Claude


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:55 Uhr.
Seite 2 von 2     12   

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