我循环浏览一个 XML 文件。一旦我找到某个节点,我就会获取它的值并更改它在整个文档中的所有出现。
XML
<?xml version="1.0" encoding="UTF-8"?>
<catalog catalog-id="my_catalog">
<product product-id="11111111">
......
<new-id>aaaaaaa</new-id>
</product>
<product product-id="2222222">
......
<new-id>bbbbbbb</new-id>
</product>
</catalog>
对于每一个<product>
当我发现<new-id>
我需要替换<product product-id="">
它时,这很好,但我还需要替换整个 XML 文档中所有出现的11111111
with 。aaaaaaa
PHP
$cotalog = new SimpleXMLElement($file);
header('Content-Type: text/xml');
foreach ($cotalog as $product) {
if ($product->getName() == 'product') {
$product['product-id'] = $product->{'new-id'};
// code here to replace all occurrences of $product['product-id'] with $product->{'new-id'}
...
}
}
echo $cotalog->asXML();
有没有一种str_replace
方法可以用不同的字符串替换所有出现的字符串值?