1

我循环浏览一个 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 文档中所有出现的11111111with 。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方法可以用不同的字符串替换所有出现的字符串值?

4

0 回答 0