PHP отправляет заголовок http типа контента . И по умолчанию это text/html
. То есть Клиент должен интерпретировать ответный документ как HTML. Но вы отправляете документ XML (а также некоторый текст и другой фрагмент, который делает вывод недействительным).
Если вы хотите отправить XML-документ, сообщите об этом клиенту, например, через header('Content-type: text/xml')
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$root = $doc->appendChild($doc->createElement('book'));
$title = $root->appendChild($doc->createElement('title', 'This is the title'));
if (headers_sent() ) {
echo 'oh oh, something wnet wrong';
}
else {
header('Content-type: text/xml; charset=utf-8');
echo $doc->saveXML();
}