Hallo,
Das kommt darauf an, was für einen XML-Prozessor du verwendest. Kann dieser Entities auflösen?
Gute Frage, verwendet wird meines Wissens Sablotron!
Du solltest auch die encoding im xml_parser_create() mitangeben.
http://at2.php.net/manual/en/function.xml-parser-create.php
Ja das mich schon, hab jetzt alles auf UTF-8 umgestellt.
Normalerweise würde ich dazu sagen, dass es mit dem nicht erkannten Entity zusammenhängt und damit es dies nicht aufgelöst wird. Aber ich weiss nicht was wirklich in deinem XML steht.
Ok, hier mal ein paar Zeilen Code die das Problem genau beschreieben:
<?php
$simple = '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE object [
<!ENTITY auml "&auml;">
<!ELEMENT object (mycontent)>
<!ELEMENT mycontent (#PCDATA)>
]>
<object>
<mycontent>Alles geht ausser Umlaute, siehe ä</mycontent>
</object>
';
$p = xml_parser_create("UTF-8");
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo $vals[$index["MYCONTENT"][0]]["value"];
?>
Als Ausgabe kommt bei mir:
"Alles geht ausser Umlaute, siehe"
Das ä fehlt!
Welche PHP 4 version?
(das liebe ich an PHP, (sogar) die (unter) Versionen sind zueinander schon M$-verdächtig inkomatibel.
Version 4.3.5
Ja, das liebe PHP fängt langsam an mir auch immer unsympathischer zu werden.
Gruß,
ueps