从一个xml文件中获取某些节点并保存到另一个节点

时间:2013-04-30 07:39:41

标签: php xml

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

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

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

1 个答案:

答案 0 :(得分: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');
}

如果您减少了代码,您也可以更轻松地阅读和理解代码。因此,您应该不时地花时间查看并减少自己的代码。

我希望这对你有所帮助。