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

Beitrag lesen

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