-2

我有一个问题,也许有人可以帮助我。我不是一个经验丰富的程序员,但我可以得到高级答案,这样我就可以了解更多。

我下载了一个 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');
}

我可以看到为什么我只有一个节点写入新文档但我不知道如何更改它所以我将所有节点都放入新文档中?

4

1 回答 1

0

设置一个变量然后再次直接覆盖它是多余的:

 $a = 'something really cool';
 $a .= ' and awsome.';
 $a = $b;

您可以将这段代码压缩到最后一行:

 $a = $b;

那么还剩下什么?

$prods = simplexml_load_file('http://urltofile.com');

foreach ($prods as $product) {
    if ($product->merchantCategoryName != 'CD') { 
        continue;
    }
    $product->merchantCategoryName = 'Musik > CD';
    $product->saveXML('newdocument.xml');
}

如果你减少代码,你也更容易阅读和理解它。因此,您应该不时花时间审查和减少您自己的代码。

我希望这对你有帮助。

于 2013-04-30T09:05:32.280 回答