Проблема в том, что вы не правильно экранировали XML здесь:
$content = str_replace("&", "&", $content);
$content = str_replace("<", "<", $content);
Эти две строки на самом деле ничего не делают. Вы просто заменяете строку той же самой строкой. Вы имели в виду &
вместо &
и <
вместо <
для строк замены?
Лучший способ - использовать теги CDATA, но это все равно не будет корректно отображать все символы.
Еще лучше - используйте классы DOM , чтобы сгенерировать для вас XML, а не избегать его самостоятельно.