在SimpleXML中对输出进行优化/格式化

Tow*_*wer 3 php formatting simplexml

我有这个simplexml脚本我用来发布从表单输入的数据.

$xml = simplexml_load_file("links.xml");

$sxe = new SimpleXMLElement($xml->asXML()); 

$person = $sxe->addChild("link");
$person->addChild("title", "Q: ".$x_title);
$person->addChild("url", "questions_layout.php#Question$id");

$sxe->asXML("links.xml"); 
Run Code Online (Sandbox Code Playgroud)

当它出现时,它看起来像这样:

<link><title>Alabama State</title><url>questions_layout.php#Question37</url></link><link><title>Michigan State</title><url>questions_layout.php#Question37</url></link></pages>
Run Code Online (Sandbox Code Playgroud)

但我试过找到了该方法的位置这个问题,以及但是没有格式的XML正确的线路,他们应该像

<link>
<title></title>
<url></url>
</link>
Run Code Online (Sandbox Code Playgroud)

在第一个引用链接中我甚loadXML至改为load,因为loadXML期望一个字符串作为XML.有人可以帮我找到解决方案吗?

ale*_*lex 8

AFAIK simpleXML无法独立完成.

但是,DOMDocument可以.

$dom = dom_import_simplexml($sxe)->ownerDocument;
$dom->formatOutput = TRUE;
$formatted = $dom->saveXML();
Run Code Online (Sandbox Code Playgroud)

  • 将其更改为`$ dom = dom_import_simplexml($ sxe) - > ownerDocument;`虽然错误不再被打印,但XML仍未被格式化并且全部出现在一行上. (2认同)