首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP simpleXML如何以格式化的方式保存文件?

问PHP simpleXML如何以格式化的方式保存文件?
EN

Stack Overflow用户
提问于 2009-04-28 17:11:12
回答 4查看 60K关注 0票数 91

我正在尝试使用PHP的SimpleXML向现有的XML文件添加一些数据。问题是它在一行中添加了所有数据:

代码语言:javascript
复制
<name>blah</name><class>blah</class><area>blah</area> ...

诸若此类。全部都在一行代码中。如何引入换行符?

我怎么才能让它变成这样呢?

代码语言:javascript
复制
<name>blah</name>
<class>blah</class>
<area>blah</area>

我正在使用asXML()函数。

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2009-04-28 17:16:28

您可以使用DOMDocument class重新格式化您的代码:

代码语言:javascript
复制
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($simpleXml->asXML());
echo $dom->saveXML();
票数 151
EN

Stack Overflow用户

发布于 2009-11-25 06:01:18

Gumbo的解决方案做到了。您可以使用上面的simpleXml进行操作,然后将其添加到末尾以回显和/或使用格式保存。

下面的代码回显它并将其保存到一个文件中(请参阅代码中的注释并删除任何不需要的内容):

代码语言:javascript
复制
//Format XML to save indented tree rather than one line
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($simpleXml->asXML());
//Echo XML - remove this and following line if echo not desired
echo $dom->saveXML();
//Save XML to file - remove this and following line if save not desired
$dom->save('fileName.xml');
票数 32
EN

Stack Overflow用户

发布于 2009-04-28 20:56:29

使用dom_import_simplexml转换为DomElement。然后使用它的容量格式化输出。

代码语言:javascript
复制
$dom = dom_import_simplexml($simple_xml)->ownerDocument;
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
echo $dom->saveXML();
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/798967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档