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