Einzelnen Beitrag anzeigen

mindtrap

Registriert seit: 7. Aug 2008
23 Beiträge
 
#1

XML mit mit em-rdf namespace

  Alt 7. Aug 2008, 04:31
Hi,

die vom Firefox verwendeten RDF-Dateien machen mir momentan das Leben etwas schwer.
Ich versuche eigentlich nur die Childnodes auszulesen bzw. gezielt bestimmte Attribute.
Ein kleines Beispiel für eine solche Datei:

Code:
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">

 <Description about="urn:mozilla:install-manifest">

   <em:id>{77b819fa-95ad-4f2c-ac7c-486b356188a9}</em:id>
   <em:name>IE Tab</em:name>
   <em:version>1.5.20080803</em:version>
   <em:description>Enables you to use the embedded IE engine within Mozilla/Firefox.</em:description>
   <em:creator>Hong Jen Yee (PCMan)</em:creator>
   <em:developer>yuoo2k</em:developer>
   <em:homepageURL>https://addons.mozilla.org/firefox/addon/1419</em:homepageURL>
   <em:optionsURL>chrome://ietab/content/ietabSetting.xul</em:optionsURL>
   <em:iconURL>chrome://ietab/skin/ietab-icon.png</em:iconURL>

...
Plan ist es hier z.B. an die Nodes id, name, version zu kommen.

Code sagt mehr als tausend Worte:

Delphi-Quellcode:
  Doc := TXMLDocument.Create( Self );
  Doc.LoadFromFile( cExtPath + '\install.rdf' );
  Doc.Active := True;

  // Die MasterNode wird gefunden
  MasterNode := Doc.DocumentElement.ChildNodes.FindNode( 'Description', Doc.DOMDocument.namespaceURI );
  // ChildNode bleibt nil
  ChildNode := MasterNode.ChildNodes.FindNode( 'em:id' );

  // ChildNode wird korrekt erkannt, aber eben nicht über die Suche
// ChildNode := MasterNode.ChildNodes.First;

  while ( Assigned( ChildNode ) ) do
  begin

  end;
Ich habe verschiedene Varianten als Schlüssel versucht: "em:id", "id", namespaceuri + "id"... usw.
FindNode gibt immer nil zurück.
Arbeite ich mit .NextSibling etc. kann ich problemlos durch die Struktur gehen, brauche ich aber nicht.

Hier habe ich auch schon nach einer Antwort gesucht, aber entweder bin ich blind oder ignorant. oO

Vielleicht kann mir jemand weiterhelfen.

Thx

PS.: Das Problem habe ich auch in der EE gepostet.
http://www.delphi-forum.de/posting.p...tpost&p=516735
  Mit Zitat antworten Zitat