AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML mit mit em-rdf namespace

Ein Thema von mindtrap · begonnen am 7. Aug 2008 · letzter Beitrag vom 7. Aug 2008
Antwort Antwort
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
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: XML mit mit em-rdf namespace

  Alt 7. Aug 2008, 09:07
Herzlich willkommen in der Delphi-PRAXiS, mindtrap.

Du hast den namespaceURI nicht angegeben:

Delphi-Quellcode:
begin
  // ...
    MasterNode := doc.DocumentElement.ChildNodes.FindNode('Description', doc.DomDocument.namespaceURI);
    ChildNode := MasterNode.ChildNodes.FindNode('em:id', 'http://www.mozilla.org/2004/em-rdf#');
  // ...
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
mindtrap

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

Re: XML mit mit em-rdf namespace

  Alt 7. Aug 2008, 15:07
Zitat von mindtrap:
Ich habe verschiedene Varianten als Schlüssel versucht: "em:id", "id", namespaceuri + "id"... usw.
FindNode gibt immer nil zurück.
Ich gebe zu, dass ich mich wohl nicht ganz korrekt ausgedrückt habe bei dieser Beschreibung.
Die Namespaceuri habe ich auch schon in deiner Variante versucht.
Leider klappt das auch nicht.

Ich versteht's nicht.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: XML mit mit em-rdf namespace

  Alt 7. Aug 2008, 15:30
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?
  Mit Zitat antworten Zitat
mindtrap

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

Re: XML mit mit em-rdf namespace

  Alt 7. Aug 2008, 18:20
Ne Brille geben. -.-

Tippfehler in Strings werden bestraft...

Danke, es funktioniert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 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