PHP SimpleXML新行

时间:2009-12-03 14:21:15

标签: php simplexml pretty-print

我使用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文件看起来全部缩进,并且每个元素都在新行上。有人知道怎么做这个吗?

由于

3 个答案:

答案 0 :(得分:11)

您可以使用formatOutputDOMDocument属性执行此操作。

相反保存您的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);

代码改编自here

答案 1 :(得分:2)

这称为“漂亮打印”,SimpleXML不这样做。如果您在Stack Overflow和Web上的其他位置搜索,您将找到可以实现此目的的自定义解决方案。

漂亮的打印有利于遮盖,但我不建议以这种格式保存文档

如果您仍在寻找漂亮的打印机,可以试试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();

答案 2 :(得分:-3)

回声&#34; \ n&#34 ;;对于xml中的新行

ob_start();回声&#39; &#39; 。 &#34; \ n&#34 ;;&GT;