我在这里有源XML:http://www.grilykrby.cz/rss/pf-heureka.xml。我想使用这个xml feed并在我自己的服务器上创建另一个修改。我想更改包含单词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());
?>
答案 0 :(得分:0)
$kategorie
只是循环中使用的临时变量,它包含xpath查询返回的数据副本。您需要直接在$xml
对象中设置值。
在将其解析为simpleXML对象之前,我个人还会考虑在XML内容中自己做str_replace
或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++;
}
?>