выводить xml-фрагмент без заголовков
Вопрос
У меня такое ощущение, что я толстая, но вот моя проблема:
Я создаю динамические деревья XML с использованием PHP. Эти деревья описывают иерархии сотрудников, каталоги файлов и т. Д. Они содержат небольшие разделы контента на веб-странице. Остальная часть веб-страницы склеена из различных других источников, которые могут быть основаны на SQL, или статического текста или некоторого специального класса представления. Когда я иду выводить свои деревья, я преобразовываю XML во вложенный <ul>
. Я хотел бы вывести это <=> без указания типа документа / заголовка. Классы PHP DomDocument и SimpleXML не позволяют этого. Является ли единственной возможностью удалить информацию обидчика после сохранения <=> в строке?
Решение
Оказывается, если я поставлю <xsl:output method="html" />
, я больше не выводю автоматический DOCTYPE. Проблема решена.
Другие советы
В конце этой страницы есть комментарий об этом: http://www.php.net/manual/en/libxml.constants.php р>
SimpleXML автоматически добавляет заголовок. Существует возможность отключить его при создании объекта Simple XML - это LIBXML_NOXMLDECL, но он не работает - все еще есть открытая ошибка - см. Ссылку внизу страницы выше.
Это то, что я сделал в итоге:
$doc = new DOMDocument('1.0');
$root = $doc->createElement('items');
$root = $doc->appendChild($root);
$title = $doc->createElement('title');
$title = $root->appendChild($title);
$text = $doc->createTextNode($item->title);
$text = $title->appendChild($text);
$items[] = $doc->saveXML($root);
Конечно, это не дает мне объект SimpleXml, но, по крайней мере, его xml и не имеет заголовка.