Christian Seiler: Zeichenkodierung überschreiben

Beitrag lesen

Hallo!

Wie kann ich so etwas mit xsl realisieren?

In der Regel sollte es ausreichen, wenn Du einfach alle Kinder des Root-Knotens kopierst:

<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
<xsl:output method="xml" encoding="UTF-8" version="1.0" />  
<xsl:template match="/">  
  <xsl:copy-of select="node()" />  
</xsl:template>  
</xsl:stylesheet>

Dann ist es auch egal, in welcher Kodierung die Originaldatei war, solange sie nur korrekt angegeben wurde.

Das kopiert Dir allerdings nicht den DOCTYPE und es gibt in XSLT 1.0 keine Möglichkeit, an den DOCTYPE des geladenen Dokuments heranzukommen. Ferner können einige Umkodierungen bei den Textknoten stattfinden. (Entities werden ersetzt, Zeichenreferenzen werden durch die eigentlichen Zeichen ersetzt, ...)

Die Frage ist: Warum willst Du das überhaupt? Du kannst die XML-Datei doch einfach als ISO-8859-1 gespeichert lassen, das wird Dir jeder mir bekannte XML-Parser trotzdem schlucken, egal, was Du dann damit weiter anstellen willst.

Viele Grüße,
Christian