Zugriff auf das Stylesheet mit JAVA

Tikonteroga

Erfahrenes Mitglied
Hallo,

ich stehe zur Zeit vor folgender Problemstellung.

Ich habe eine XML-Datei mit der Klasse DocumentBuilder http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/Document.html geparst und ein Objekt der Klasse Document http://java.sun.com/j2se/1.5.0/docs/api/org/w3c/dom/Document.html erhalten. Nun möchte ich über das Objekt der Klasse Document Zugriff auf folgenden Eintrag in der XML-Datei erhalten.

<?xml-stylesheet href="style.xsl" type="text/xsl"?>

Sinn und Zweck ist, dass ich an den Inhalt des Attributes href also auf den Dateinamen bekommen möchte.

Ich habe es folgendermaßen bereits probiert, es klappt aber nicht.

NodeList nodeList = document.getElementsByTagName("?xml-stylesheet");

Hat jemand vielleicht eine Idee, wie ich über das Document Zugriff auf den Dateinamen bekommen kann ?

Gruß

Tikonteroga
 
Hi.

Das ist kein XML Element, das ist ein ProcessingInstruction. Du wirst wohl den XML Baum traversieren müssen um die ProcessingInstruction mit dem xml-stylesheet Target zu finden.

Gruß
 
Hallo,

ich habe es jetzt sowohl mit dem SAX- als auch mit dem DOM-Parser hinbekommen.

folgende Strings stehen mir jetzt zur Verfügung: xml-stylesheet und href="stylesheet.xsl" type="xsl/text".

Jetzt ist mein Problem, dass ich aus dem String href="stylesheet.xsl" type="xsl/text" die Namen der jeweiligen Attribute ("href" und "type") sowie die jeweiligen values ("stylesheet.xsl" und "xsl/text") extrahieren muss. Ich habe jetzt auch schon nach Klassen/Methoden/Interfaces gesucht, die genau diese Funktionalität anbieten, konnte aber noch nichts finden. Gibt es so etwas überhaupt oder muss ich da selber einen Algorhytmus z. B. mit Hilfe der Klasse String implementieren ?

Gruß

Tikonteroga
 
Hallo,

ich habe es jetzt sowohl mit dem SAX- als auch mit dem DOM-Parser hinbekommen.

folgende Strings stehen mir jetzt zur Verfügung: xml-stylesheet und href="stylesheet.xsl" type="xsl/text".

Jetzt ist mein Problem, dass ich aus dem String href="stylesheet.xsl" type="xsl/text" die Namen der jeweiligen Attribute ("href" und "type") sowie die jeweiligen values ("stylesheet.xsl" und "xsl/text") extrahieren muss. Ich habe jetzt auch schon nach Klassen/Methoden/Interfaces gesucht, die genau diese Funktionalität anbieten, konnte aber noch nichts finden. Gibt es so etwas überhaupt oder muss ich da selber einen Algorhytmus z. B. mit Hilfe der Klasse String implementieren ?
Der Inhalt einer ProcessingInstruction wird vom XML Parser nicht geparst. Du mußt also selber ran. Mit Hilfe von regulären Ausdrücken sollte das aber kein Problem sein.

Du könntest dir natürlich auch ein minimales XML Dokument als String anlegen:
XML:
<temp href="stylesheet.xsl" type="xsl/text"/>
und dann mit einem Parser weiterverarbeiten.

Gruß
 
Zuletzt bearbeitet von einem Moderator:
Danke für die Antworten.

Ich habe in den letzten Tagen etwas mit dem DOM und dem SAX Parser herumgespielt. Ist es denn mit dem SAX Parser möglich die Tags

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Adressbuch SYSTEM "datei.dtd">

und das Master-Tag, dass gegebenenfalls die Attribute für das XMLSchema enthält auszulesen ?

Gruß

Tikonteroga
 
Danke für die Antworten.

Ich habe in den letzten Tagen etwas mit dem DOM und dem SAX Parser herumgespielt. Ist es denn mit dem SAX Parser möglich die Tags

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Adressbuch SYSTEM "datei.dtd">
Für die ProcessingInstruction siehe http://www.cafeconleche.org/books/xmljava/chapters/ch06s08.html

Für die DTD müßtest du einen DTDHandler definieren. Siehe http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/DTDHandler.html.
und das Master-Tag, dass gegebenenfalls die Attribute für das XMLSchema enthält auszulesen ?
Das Master-Tag wurde erkannt, wenn der Parser zum ersten mal die startElement Methode aufruft.

Gruß
 

Neue Beiträge

Zurück