gpt4 book ai didi

php - 在 simplexml_load_file php 中的 addChild() 之后添加换行符

转载 作者:行者123 更新时间:2023-12-04 16:08:39 25 4
gpt4 key购买 nike

我使用 simplexml_load_file() 函数在现有的 xml 文件中添加了一个新的子文件。但是它不是格式化的东西。我试过这段代码

   `$file = 'data/users.xml';
$xml = simplexml_load_file($file);
$xml->Users;
$newuser = $xml->addChild('userdata');
$newuser->addChild('userid', $data['id']);
$newuser->addChild('name', $data['name']);
$newuser->addChild('email', $data['email']);
$newuser->addChild('mobile', $data['mobile']);
$newuser->addChild('username', $data['user']);
$newuser->addChild('password', $data['pass']);
$newuser->addChild('role', $data['role']);

$dom = dom_import_simplexml($xml)->ownerDocument;
$dom->formatOutput = TRUE;
$dom->save($file);`

结果是

`<userdata><name>agallery</name><filepath>path/to/gallery</filepath>
<thumb>mythumb.jpg</thumb></userdata>`

但是我需要这样的格式

`<userdata>
<name>agallery</name>
<filepath>path/to/gallery</filepath>
<thumb>mythumb.jpg</thumb>
</userdata>`

最佳答案

当涉及到 XML 时,文档的格式并不重要,尽管它通常倾向于以结构化布局格式呈现。 SimpleXML 没有执行此操作的选项 (AFAIK),因此您可能必须使用 DOM 来执行此操作...

$dom = dom_import_simplexml($xml)->ownerDocument;
$dom->formatOutput = TRUE;
$dom->save($file);

这会获取文档,将其转换为 DOM,然后格式化输出。

编辑:这是一个常见的问题,格式有时似乎不起作用,变通办法似乎过多,但这就是变通办法有时最终会成为...

$dom = dom_import_simplexml($xml)->ownerDocument;
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;
$dom->loadXML( $dom->saveXML());
$dom->save($file);

关于php - 在 simplexml_load_file php 中的 addChild() 之后添加换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46904147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com