&
w XML rozpoczyna encję. Ponieważ nie zdefiniowałeś encji &WhateverIsAfterThat
zgłaszany jest błąd. Powinieneś go zmienić za pomocą &
.
$string = str_replace('&', '&', $string);
Jak uciec przed znakami ampersand w XML
Aby uciec przed innymi zarezerwowanymi znakami:
function xmlEscape($string) {
return str_replace(array('&', '<', '>', '\'', '"'), array('&', '<', '>', ''', '"'), $string);
}