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. 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 |
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 17:27 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