我正在测试一个如何使用PHP在浏览器中显示XML的简单示例,并发现这个示例效果很好
<?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>
是否可以获得所需的输出,如果可以,我该如何实现。
由于
答案 0 :(得分:1)
要跳过XML声明,您可以在根节点上使用saveXML
的结果:
$xml_content = $xml->saveXML($root);
file_put_contents("mybooks.xml", $xml_content) or die("cannot save XML");
请注意,saveXML(node)
的输出与saveXML()
不同。
答案 1 :(得分:0)
第一个问题: 这是我的帖子,其中列出了包含答案的所有可用线程:How do you exclude the XML prolog from output?
第二个问题: 我不知道任何输出文本节点的PHP函数。
你可以:
最后,您将在新行中使用与文本节点值相同的XML:
<node>
some text data
</node>