Mailinglisten-Archive |
Hi
> ich möchte mit den Sablotron/XSLT Funktionen einen XML file unter
> Bezug auf ein
> XSL Stylesheet in ein HTML Dokument transformieren.
>
> Solange ich keine Umlaute verwende klappt das problemlos.
>
> Sobald das XML Dokument Umlaute enthält werden diese falsch ausgegeben:
>
> z.B. "für" anstelle von "für"
>
> Wie muß ich im XML File die Umlaute kodieren, damit Sablotron
> diese richtig
> ausgibt?
Deine XML-Dokumente scheinen als Unicode ausgegeben zu werden, was zB der
Netscape 4.x nicht beherscht.
Die Umlaute in XML müssen numerisch codiert werden, da XML nur &, <,
>, ' und " als benannte Sonderzeichen kennt.
XML-Editoren sollten dies automatisch können. In PHP hilft die folgende
RegEx
$outstr = preg_replace(
"/([^a-zA-Z\d\s<>;\.:=\"\-\|\/%\?!'\^\(\)\[\]\{\}\$#\+,\*_(at)__])/e",
"'&#'.ord('\\1').';'",
$instr);
Sie ersetzt alle Zeichen bei denen der Sablotron maulen würde, außer & da
dieses
in Codierungen verwendet wird.
In der XSL brauchts dann noch etwas wie
<xsl:output method="html" encoding="iso-8859-1" standalone="yes"
doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN" indent="yes" />
direkt nach <xsl:stylesheet>
cu
Thomas Weinert
http://www.weaverslave.ws - the flexible Webeditor
php::bar PHP Wiki - Listenarchive