0

我在这里有源 XML:http: //www.grilykrby.cz/rss/pf-heureka.xml。我想使用这个 xml 提要并在我自己的服务器上创建另一个修改。我想更改包含单词 Prislusenstvi 的每个节点 CATEGORYTEXT。我只是尝试了一些东西,但我只得到了所有类别的列表而没有更改 XML :-( 这是我的代码示例。行 $kategorie="nejaka kategorie"; 不起作用。

<?php
$file = "http://www.grilykrby.cz/rss/pf-heureka.xml";
$xml=simplexml_load_file($file);
foreach ($xml->xpath('//SHOPITEM/CATEGORYTEXT') as $kategorie) {
echo $kategorie."<br />";
$kategorie="nejaka kategorie";
}
file_put_contents('test.xml', $xml->asXML()); 
?>
4

1 回答 1

0

$kategorie只是循环中使用的临时变量,其中包含 xpath 查询返回的数据的副本。您需要直接在$xml对象中实际设置值。

在将 XML 内容解析为 simpleXML 对象之前,我个人也会考虑在 XML 内容本身内执行str_replaceor 。preg_replace

最终接受的答案

<?php
$xml = simplexml_load_file('http://www.grilykrby.cz/rss/pf-heureka.xml');
$i=0;
foreach($xml -> SHOPITEM as $polozka) {
    if ($polozka -> CATEGORYTEXT == "Příslušenství") $xml -> SHOPITEM[$i] -> CATEGORYTEXT = "Some other text";
    $i++;
}
?>
于 2012-09-13T18:18:29.833 回答