&
in XML avvia un'entità. Poiché non hai definito un'entità &WhateverIsAfterThat
viene generato un errore. Dovresti eseguire l'escape con &
.
$string = str_replace('&', '&', $string);
Come faccio a sfuggire alle e commerciali in XML
Per sfuggire agli altri caratteri riservati:
function xmlEscape($string) {
return str_replace(array('&', '<', '>', '\'', '"'), array('&', '<', '>', ''', '"'), $string);
}