Intereting Posts
Уведомления электронной почты WooCommerce: разные адресаты электронной почты для разных городов Как запустить исполняемый файл с сайта PHP в качестве конкретного пользователя Windows? Лучшее решение для защиты PHP-кода без шифрования Технология PHP для запроса сервера обратной связи APNs Создать заказ программно в Magento Что лучше требовать (dirname (__ FILE __). '/'. 'MyParent.php'), чем просто требовать ('myParent.php')? Как предотвратить выполнение задания cron, если оно уже запущено это PHP str_word_count () многобайтовый сейф? Конфигурация среды Laravel не загружается, сбой миграции – SQLSTATE Нет такого файла или каталога Как заставить MySQL рассматривать символ подчеркивания как разделитель слов для полнотекстового поиска? «Попытка получить свойство не-объекта в» – пользовательский класс mysqli filter_var против preg_match PHP не распознает метод, определенный в классе Обнаруживать обновление страницы или новую загрузку с помощью PHP или Javascript Установка display_errors = 0 и log_errors = 1 без php.ini

Выход PHP DomDocument без <? Xml version = "1.0" encoding = "UTF-8"?>

есть ли опция с DomDocument для удаления первой строки:

<?xml version="1.0" encoding="UTF-8"?> 

Создание экземпляра класса автоматически добавляет его к выходу, но можно ли избавиться от него?

Если вы хотите вывести HTML, используйте saveHTML() . Он автоматически избегает большого количества XML-идиомы и правильно обрабатывает закрытую / незакрытую HTML-идиому.

Если вы хотите вывести XML, вы можете использовать тот факт, что DOMDocument является DOMNode (а именно: «/» в выражении XPath), поэтому вы можете использовать DOMNode API DOMNode для его итерации по дочерним узлам и вызывать saveXML() на каждом дочернем узле , Это не выводит объявление XML, и оно выводит все остальные XML-материалы должным образом.

Пример:

 $xml = get_my_document_object(); foreach ($xml->childNodes as $node) { echo $xml->saveXML($node); } 

Я думаю, что использование DOMDocument является универсальным решением для действительных файлов XML:

Если у вас xml allready загружен в переменную:

 $t_xml = new DOMDocument(); $t_xml->loadXML($xml_as_string); $xml_out = $t_xml->saveXML($t_xml->documentElement); 

Для файла XML с диска:

 $t_xml = new DOMDocument(); $t_xml->load($file_path_to_xml); $xml_out = $t_xml->saveXML($t_xml->documentElement); 

Этот комментарий помог: http://www.php.net/manual/en/domdocument.savexml.php#88525

Вы можете использовать буферизацию вывода для ее удаления. Немного взлома, но он работает.

 ob_start(); // dom stuff $output = ob_get_contents(); ob_end_clean(); $clean = preg_replace("/(.+?\n)/","",$output);