10

我使用 PHP 的简单 XML 创建了一个 XML 文件,并保存了该文件。使用 fopen 在 php 中打开文件并打印内容时。我的 XML 看起来像这样:(见下文)

<?xml version="1.0" encoding="UTF-8"?>
<home><orderList><delivery_cost>0.00</delivery_cost><delivery_surname>TEST</delivery_surname><delivery_postcode>1234</delivery_postcode><status>1</status></orderList></home>

我希望 xml 文件看起来全部缩进并在每个元素的新行上显示。有人知道怎么做这个吗?

谢谢

4

3 回答 3

14

您可以使用 的formatOutput属性来执行此操作DOMDocument

像这样保存您的 XML,假设您的 XML 位于名为 的变量中$yourXML,并且您希望将其保存到以下位置的文件中$xmlFilePath

$dom = new DOMDocument();
$dom->loadXML($yourXML);
$dom->formatOutput = true;
$formattedXML = $dom->saveXML();

$fp = fopen($xmlFilePath,'w+');
fwrite($fp, $formattedXML);
fclose($fp);

代码改编自这里

于 2009-12-03T14:28:16.507 回答
3

这称为“漂亮打印”,而 SimpleXML 不这样做。如果您在 Stack Overflow 和网络上的其他地方进行搜索,您会发现可以做到这一点的自定义解决方案。

漂亮的印刷有利于视觉,但我不建议以这种格式保存文档

如果你还在寻找漂亮的打印机,你可以试试SimpleDOM的 asPrettyXML()

include 'SimpleDOM.php';

$home = simpledom_load_string('<?xml version="1.0" encoding="UTF-8"?>
<home><orderList><delivery_cost>0.00</delivery_cost><delivery_surname>TEST</delivery_surname><delivery_postcode>1234</delivery_postcode><status>1</status></orderList></home>');

echo $home->asPrettyXML();
于 2009-12-03T14:33:52.360 回答
-4

回声“\n”;用于 xml 中的新行

ob_start(); 回声''。"\n";?>

于 2016-09-22T09:01:08.083 回答