PHP SimpleXML 换行

发布于 2024-08-14 05:29:12 字数 464 浏览 10 评论 0原文

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

谢谢

I have created a XML file using PHP's simple XML, saved the file. When opening the file in php using fopen and printing the contents. my XML looks like this: (see below)

<?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>

I want the xml file looking all indented and on new lines for each element. Does anybody know how to do this?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

清风挽心 2024-08-21 05:29:12

您可以使用 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);

代码改编自 此处

You can do this using the formatOutput property of DOMDocument.

Save your XML like this instead, presuming your XML is in a variable called $yourXML, and you want to save it to a file at $xmlFilePath:

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

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

Code adapted from here.

无法回应 2024-08-21 05:29:12

这称为“漂亮打印”,而 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();

This is called "pretty printing" and SimpleXML does not do that. If you search on Stack Overflow and elsewhere on the web you'll find custom solutions that do that.

Pretty printing is good for visulation but I don't recommend saving documents in that format.

If you're still looking for a pretty-printer, you can try SimpleDOM's 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();
岁月静好 2024-08-21 05:29:12

回显“\n”;对于 xml 中的新行

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

echo "\n"; for new line in xml

ob_start(); echo '
' . "\n";?>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文