【发布时间】:2013-04-30 07:39:41
【问题描述】:
我有一个问题,也许有人可以帮助我。我不是一个经验丰富的程序员,但我可以得到高级答案,这样我就可以了解更多。
我下载了一个 xml 文件,打开并阅读它。当满足特定条件时,我会更改该节点中的值,这可以正常工作。但在那之后,我想将我刚刚更改的整个节点写入一个新的 xml 文件,这就是我遇到问题的地方。我设法存储了最后一个节点,这表明我一直在新文档中写入现有节点。
这是我的代码:
$prodsToSave = new DOMDocument(); //my new document
$prods = new DOMDocument();
$prods = simplexml_load_file('http://urltofile.com');
foreach ($prods as $product) {
if($product->merchantCategoryName == 'CD') {
$productToSave = $product;
$productToSave->merchantCategoryName = 'Musik > CD';
$prodsToSave=$productToSave;
}
$prodsToSave->saveXML('newdocument.xml');
}
我知道为什么我只有一个节点写入新文档但我不知道如何更改它所以我将所有节点都放入新文档中?
【问题讨论】:
-
为什么要用 simplexml 对象替换 domdocument ($prods)?这与彼此无关..
-
重复,检查这个问题stackoverflow.com/questions/6001923/…。仅供参考,DOMDocument::saveXML 不接受文件名作为参数,它只返回给定对象的 XML。为了将其写入文件,请使用 file_put_contents 之类的函数。
-
那么,Yordi,它应该如何运作,有什么想法吗? Rolando:我不同意,它不是重复的,但如果你认为是重复的,请接受该信息并应用到我的问题并回答它:)
-
不过我会研究一下 file_put_content 函数,谢谢!