![]() |
XML mit mit em-rdf namespace
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:
Plan ist es hier z.B. an die Nodes id, name, version zu kommen.
<?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> ... Code sagt mehr als tausend Worte:
Delphi-Quellcode:
Ich habe verschiedene Varianten als Schlüssel versucht: "em:id", "id", namespaceuri + "id"... usw.
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; FindNode gibt immer nil zurück. Arbeite ich mit .NextSibling etc. kann ich problemlos durch die Struktur gehen, brauche ich aber nicht. ![]() Vielleicht kann mir jemand weiterhelfen. Thx PS.: Das Problem habe ich auch in der EE gepostet. ![]() |
Re: XML mit mit em-rdf namespace
Herzlich willkommen in der Delphi-PRAXiS, mindtrap.
Du hast den namespaceURI nicht angegeben:
Delphi-Quellcode:
Freundliche Grüße
begin
// ... MasterNode := doc.DocumentElement.ChildNodes.FindNode('Description', doc.DomDocument.namespaceURI); ChildNode := MasterNode.ChildNodes.FindNode('em:id', 'http://www.mozilla.org/2004/em-rdf#'); // ... end; |
Re: XML mit mit em-rdf namespace
Zitat:
Die Namespaceuri habe ich auch schon in deiner Variante versucht. Leider klappt das auch nicht. Ich versteht's nicht. :gruebel: |
Re: XML mit mit em-rdf namespace
Ich habe meine beiden Code-Zeilen mit D7 und einer INSTALL.RDF aus einer zufällig gewählten XPI-Datei getestet.
Bei mir funktioniert es. Kann ich dir noch irgendwie helfen? |
Re: XML mit mit em-rdf namespace
Ne Brille geben. -.-
Tippfehler in Strings werden bestraft... :wall: Danke, es funktioniert. :cheer: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 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