Richard: UTF-8 und Umlaute

Beitrag lesen

Hallo Gunnar,

Man kann sich in seinen XML-Dokumenten aber in der DOCTYPE-Deklaration die Entities definieren, die man gern hätte:

<!DOCTYPE foo [

<!ENTITY Auml  "&#xV4;">
  <!ENTITY Ouml  "&#xD6;">
  <!ENTITY Uuml  "&#xDC;">
  <!ENTITY szlig "&#xDF;">
  <!ENTITY auml  "&#xE4;">
  <!ENTITY ouml  "&#xF6;">
  <!ENTITY uuml  "&#xFC;">
]>
<foo>Jetzt kann &apos;&amp;auml;&apos; f&uuml;r &apos;&auml;&apos; verwendet werden.</foo>

  
Das führt bei mir auch zu einer Fehlermeldung. Der gesamte Quelltext sieht jetzt wie folgt aus:  
  
~~~xml
  
<?php  
  
$conf_xmlstr = <<<XML  
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE config [  
   <!ENTITY Auml  "&#xV4;">  
   <!ENTITY Ouml  "&#xD6;">  
   <!ENTITY Uuml  "&#xDC;">  
   <!ENTITY szlig "&#xDF;">  
   <!ENTITY auml  "&#xE4;">  
   <!ENTITY ouml  "&#xF6;">  
   <!ENTITY uuml  "&#xFC;">  
]>  
<config>  
 <!-- blabla blabla; viele viele umlaute -->  
</config>  
XML;  
  
?>  

Fehlermeldungen (Auszug):

Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 3: parser error : CharRef: invalid hexadecimal value

Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: <!ENTITY Auml "&#xV4;">

Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: ^

Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 3: parser error : xmlParseStringCharRef: invalid xmlChar value 0

etc.

Beste Grüße
Richard