есть ли опция с 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);