phpbar.de logo

Mailinglisten-Archive

[php] Umlaute mit Sablotron

[php] Umlaute mit Sablotron

Thomas Weinert php_(at)_phpcenter.de
Mon, 13 Aug 2001 12:39:22 +0200


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