PHP - форматировать вывод XML

1

Я генерирую некоторые XML-данные в ответ на запрос HTTP POST. Я устанавливаю MIME

header('Content-type: text/xml');

и все хорошо работает до сих пор.

Я генерирую ответ xml следующим образом:

 $response = '<?xml version="1.0" encoding="utf-8"?>';
 $response .= '<error>';
 $response .= '<description>'.$error.'</description>';
 $response .= '</error>';
 echo $response;

Теперь я хотел бы формат XML, чтобы вместо этого ответа:

<?xml version="1.0" encoding="utf-8"?><error><description>Login Error: No Username Supplied</description></error>

они видят этот ответ:

<?xml version="1.0" encoding="utf-8"?>
 <error>
    <description>Login Error: No Username Supplied</description>
 </error>

Я не работал с XML-выходом с PHP, поэтому не уверен, есть ли встроенный метод для создания функции "довольно печатного типа" на выходе?

  • 0
    Как вы выводите XML? Посмотрите на эту ветку stackoverflow.com/questions/8615422/… .
  • 1
    немного оффтоп: «правильно форматировать XML» - ни одна из версий не является более правильной, чем другая. Вы, вероятно, имеете в виду «более читабельный». И тогда определение документа должно позволять это (то есть пропуски могут быть пропущены).
Теги:

1 ответ

0
Лучший ответ

Используйте библиотеку DOM и установите для свойства formatOutput значение true

$doc = new DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true;

$root = $doc->createElement('error');
$doc->appendChild($root);

$desc = $doc->createElement('description', $error);
$root->appendChild($desc);

echo $doc->saveXML();

Демо ~ https://eval.in/461384

Ещё вопросы

Сообщество Overcoder
Наверх
Меню