Проблемы с созданием XML с DOMDocument в PHP - PullRequest
0 голосов
/ 01 мая 2010

Приведенный ниже код получен с php.net (http://docs.php.net/manual/en/domdocument.savexml.php).. Моя проблема в том, что она не работает. Мой единственный вывод: «Сохранение всего документа: сохранение только части заголовка:». Что мне здесь не хватает?

$doc = new DOMDocument('1.0');
  // we want a nice output  
  $doc->formatOutput = true;   
  $root = $doc->createElement('book');
  $root = $doc->appendChild($root);  
  $title = $doc->createElement('title');  
  $title = $root->appendChild($title);
  $text = $doc->createTextNode('This is the title');  
  $text = $title->appendChild($text); 
  echo "Saving all the document:\n";  
  echo $doc->saveXML() . "\n";
  echo "Saving only the title part:\n";  
  echo $doc->saveXML($title);

1 Ответ

0 голосов
/ 01 мая 2010

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...