PHP中的dom在旧文件上保存新内容
Posted
技术标签:
【中文标题】PHP中的dom在旧文件上保存新内容【英文标题】:dom in PHP saves new content over the old File 【发布时间】:2009-11-12 19:20:11 【问题描述】:每次都这样
$country = $this->dom->saveXML(); // put string in country
$this->dom->save('country.xml');
它会删除 old country.xml 并创建一个 new country.xml 如何将 country.xml 的旧内容附加到新内容并再次保存为 country.xml
【问题讨论】:
结果中有多少个文件? 您必须重新表述您的问题,因为它实际上并没有多大意义,尤其是那部分:“我怎样才能将旧内容 [...] 写入新内容” - 这是什么意思? hmm.. 图像你有一些国家的文件 country.xml,你现在获取一些其他的东西,如果你保存它,旧的内容将被覆盖,你获取的内容将在文件国家中.xml 我该如何防止呢? @Ivan Nevostruev 只有一个文件 【参考方案1】:您是否考虑过将新数据附加到现有的“旧”DOM,然后将其保存到 country.xml,而不是尝试将其附加到文件中?这种方式将使文档保持一致和有效。
【讨论】:
如果你使用$this->dom = domxml_open_file('country.xml')
,它会从文件中创建一个新的DOM,然后你可以随意追加。
hmm.. 我怎样才能把旧文件的内容放到一个数组中?如果可以的话,我可以在 foreach 循环中编写新的 xml,这很容易
我刚刚意识到,上面的函数只能在 php 4 中工作。如果你使用的是 PHP 5,你会想要使用$this->dom->load('country.xml')
。【参考方案2】:
如果我理解正确,那么您想将新的 XML 附加到旧文件的末尾吗?这对于 XML 来说有点不寻常,但是您可以简单地通过使用
写入文件来做到这一点file_put_contents('country.xml', $country, FILE_APPEND);
而不是
$this->dom->save('country.xml');
【讨论】:
是的,您已经理解我的问题。但是,旧的 xml 将无效 如果我按照你写的去做,每次我用新内容 和多个 更新文件时都会得到xml 文档不是有效的 xml。以上是关于PHP中的dom在旧文件上保存新内容的主要内容,如果未能解决你的问题,请参考以下文章