Das funktioniert soweit ganz gut, aber mich stört, dass an jedes
einzelne Tag das alberne xmlns="http://www.w3.org/1999/xhtml"
angehängt wird. Kann man das durch einen einfachen Handgriff
abstellen?
Andreas
Das verwirrt mich ein wenig, zumindest bei Xalan 1.x war das noch nicht so.
Zumal Du oben auch noch "html" angibst, müßte doch eigentlich HTML generiert
werden und nicht XHTML. Welche XSLT-Engine benutzt Du?
Gruß,
Daniel
> Das verwirrt mich ein wenig, zumindest bei Xalan 1.x war das noch nicht so.
> Zumal Du oben auch noch "html" angibst, müßte doch eigentlich HTML generiert
> werden und nicht XHTML. Welche XSLT-Engine benutzt Du?
org.apache.xalan.processor.TransformerFactoryImpl
org.apache.xalan.transformer.TransformerIdentityImpl
JDK 1.4.2 + eingebundene
TOMCAT5/common/endorsed/xercesImpl.jar
TOMCAT5/common/endorsed/xmlParserAPIs.jar
> Document doc = db.parse("http://localhost:9080/test.xhtml");
> // modify it somewhat
> TransformerFactory tf = TransformerFactory.newInstance();
> Transformer t = tf.newTransformer();
> t.setOutputProperty(OutputKeys.METHOD, "html");
> t.transform(new DOMSource(doc), new StreamResult(System.out));
Was machst Du hier eigentlich? So wie ich das sehe gibt Dein Transformer
die Identität des DOM zurück, also transformiert er gar nicht. D.h.
die Namespaces kommen durch die Methode "db.parse" in Dein Dokument.
Kann das sein?
Das erklärt im übrigen auch, warum er kein HTML ausgibt, wie ich das
vermutet hatte und mich daher gewundert hatte.
Gruß,
Daniel
> Was machst Du hier eigentlich? So wie ich das sehe gibt Dein Transformer
> die Identität des DOM zurück, also transformiert er gar nicht. D.h. die
> Namespaces kommen durch die Methode "db.parse" in Dein Dokument. Kann
> das sein?
Na ja, ich dachte mir, ich könnte mal meinen Kram XML-konform einlesen,
anschließend (vielleicht nicht wirklich, aber der Potenz nach) am DOM
herumfummeln und das Ergebnis dann wieder auswerfen. Ist das nicht
geschickt?
Wenn Du mit Deiner These recht hast (ich fahre jetzt für 2 Wochen in
den Urlaub, danach wird's verifiziert), scheint das xmlns-Attribut
implied für alle Tags zu sein. Das ist einerseits schön, andererseits
würde ich dennoch gern darauf verzichten. Kann man womöglich den
Transformer einfach ableiten? Irgendwie machen mich solche Sachen immer
nervös. Heute habe ich zum Beispiel einen Filter geschrieben, der alle
HTML-Kommentare aus von Tomcat gelieferten HTML-Seiten entfernt, da es
mich nervte, dass jeder die DreamWeaver-Template-Kommentare darin sehen
konnte. (Deswegen auch der Urlaub)
Andreas
Doch. Aber ich bin nicht sicher, ob dann die Output-Werte auch übernommen
werden. Normalerweise setze ich die nicht im Java-Code, sondern im XSLT
selber.
> Wenn Du mit Deiner These recht hast (ich fahre jetzt für 2 Wochen in
> den Urlaub, danach wird's verifiziert), scheint das xmlns-Attribut
> implied für alle Tags zu sein.
Normalerweise erscheint es nur am ersten Tag, welches den Namespace
verwendet. Nach unten wird es dann "vererbt" und wird nicht noch einmal
ersetzt.
Gruß,
Daniel