Я был tesing с простым примером того, как отображать XML в браузере с помощью PHP и нашел этот пример, который работает хорошо
<?php $xml = new DOMDocument("1.0"); $root = $xml->createElement("data"); $xml->appendChild($root); $id = $xml->createElement("id"); $idText = $xml->createTextNode('1'); $id->appendChild($idText); $title = $xml->createElement("title"); $titleText = $xml->createTextNode('Valid'); $title->appendChild($titleText); $book = $xml->createElement("book"); $book->appendChild($id); $book->appendChild($title); $root->appendChild($book); $xml->formatOutput = true; echo "<xmp>". $xml->saveXML() ."</xmp>"; $xml->save("mybooks.xml") or die("Error"); ?>
Он производит следующий вывод:
<?xml version="1.0"?> <data> <book> <id>1</id> <title>Valid</title> </book> </data>
Теперь у меня есть два вопроса относительно того, как должен выглядеть вывод.
Первая строка в xml-файле '' не должна отображаться, то есть должна быть скрыта
Как я могу отобразить TextNode в следующей строке. В целом я делаю вывод таким образом
<data> <book> <id>1</id> <title> Valid </title> </book> </data>
Возможно ли получить желаемый результат, если да, то как я могу это сделать.
благодаря
Чтобы пропустить объявление XML, вы можете использовать результат saveXML
в корневом узле:
$xml_content = $xml->saveXML($root); file_put_contents("mybooks.xml", $xml_content) or die("cannot save XML");
Обратите внимание, что saveXML(node)
имеет отличный результат от saveXML()
.
Первый вопрос: вот мой пост, где перечислены все полезные темы с ответами: как вы исключаете пролог XML из вывода?
Второй вопрос: я не знаю никакой PHP-функции, которая выводит такие текстовые узлы.
Ты мог:
В конце вы должны иметь тот же XML с текстовыми значениями узлов в новой строке:
<node> some text data </node>