frankx: domdocument-xml und "Ü" und encoding und save

Hellihello

  
<?php  
 $xmlString='<?xml version="1.0" encoding="ISO-8859-1"?>  
<body>  
 <h1>1. Überschrift  
 </h1>  
 <p>Absatz  
 </p>  
</body>';  
  
 $xml = new DOMDocument;  
 $xml->loadXML($xmlString);  
  
 $neuesElement="h1";  
 $neuerInhalt="Überschrift"; //Zeile 19  
 $neueUeberschrift = $xml->createElement($neuesElement,$neuerInhalt);  
  
 $body=$xml->getElementsByTagName("body")->item(0);  
 $body->appendChild($neueUeberschrift);  
 echo $xml->saveXML();  
?>  

bringt den Fehler:

Warning: output conversion failed due to conv error in D:\xampp\htdocs\testsumsprogrammierenmedion\xhtml\save_xml_htmlentities.php on line 19

Warning: Bytes: 0xDC 0x62 0x65 0x72 in D:\xampp\htdocs\testsumsprogrammierenmedion\xhtml\save_xml_htmlentities.php on line 19

Wenn ich das "Ü" ersetzte durch "U" ist alles o.k. Wenn ich htmlentities("Überschrift") nehme, wird daraus in der Ausgabe: "&amp;Uuml;", weil PHP mit DOMDocument-saveXML() scheinbar die HTML-Entities nochmal konveriert. Mit CDATA würde es gehen, mein Plan war aber, direkt in ein XHTML-Dokument einzugreifen. Auch wundert mich, dass das Ü aus dem XML-String klagklos übernommen wird, und das aus der Eingabe nicht. DOMDocument->createTextNode() und das dann an das h1-Element appended bringt den selben Fehler. (Der Scite-Editor 8-Bit Kodierung eingestellt und zeigt as Ü richtig an. Stelle ich alles auf utf-8, wirds korrekt angezeigt). Weiß jemand Rat?

Dank und Gruß,

frankx

  1. Hallo frankx.

    Warning: output conversion failed due to conv error in D:\xampp\htdocs\testsumsprogrammierenmedion\xhtml\save_xml_htmlentities.php on line 19

    Das dürfte ein Bug in PHP sein. Mit meiner lokalen Version (5.1.4) kann ich das Problem nicht nachvollziehen.

    Einen schönen Samstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]