Php SimpleXML::addChild()可以';输出到xml时不添加换行符 标题3这是一些描述

Php SimpleXML::addChild()可以';输出到xml时不添加换行符 标题3这是一些描述,php,simplexml,Php,Simplexml,使用asXML()输出时,每个节点元素之间没有换行符 如何通过在包含子元素节点的每个XML元素打开和关闭标记后添加换行符,使输出文件结构良好: <?xml version="1.0" encoding="utf-8"?><items> <item><title>title3</title><desc>This is some desc3</desc></item></items> 标题

使用asXML()输出时,每个节点元素之间没有换行符

如何通过在包含子元素节点的每个XML元素打开和关闭标记后添加换行符,使输出文件结构良好:

<?xml version="1.0" encoding="utf-8"?><items>
<item><title>title3</title><desc>This is some desc3</desc></item></items>

标题3
这是一些描述
SimpleXML扩展仅限于格式化输出,它的姊妹扩展支持输出格式化。示例中的XML字符串,并使用
DOMDocument::$preserveWhiteSpace
DOMDocument::$formatOutput
控制格式化设置:

<?xml version="1.0" encoding="utf-8"?>
<items>
<item>
<title>title3</title>
<desc>This is some desc3</desc>
</item>
</items>
这将输出一个缩进良好的XML,其中包含您要求的换行符:

$doc = new DOMDocument();

$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;

$doc->loadXML($string);

echo $doc->saveXML();

标题3
这是一些描述
如果需要进一步操作缩进,可以使用相关问答中概述的正则表达式:


如果不想使用该方法,还可以从SimpleXML切换到其他方法,然后切换到XMLWriter,后者提供了设置打印XML缩进()的方法。您需要找到XML模型的临时表示,以便使用
XMLWriter
编写它,但这看起来并不是那么简单。

使用DOMDocument,它可以选择格式化html/XML数据
<?xml version="1.0" encoding="utf-8"?>
<items>
  <item>
    <title>title3</title>
    <desc>This is some desc3</desc>
  </item>
  <empty/>
</items>