Это недостаток в оригинальном XML, но это не редкость.Мне не очень повезло с решениями здесь (кроме Вута ван дер Вегта), поэтому вот подход «создай новый XML, который исправлен»:
// Needs PHP 5.4.0+
$file = "xmldata_with_entities.xml";
$file2 = "xmldata_converted.xml";
$handle1 = fopen($file, "r");
$handle2 = fopen($file2, "w");
if ($handle1) {
while (($line = fgets($handle1)) !== false) {
fwrite($handle2, html_entity_decode($line,ENT_HTML5));
}
}
fclose($handle1);
fclose($handle2);
Очевидно, что тогда вы могли бы использовать $ file2в XMLReader.