0

ここにソースXMLがあります:http ://www.grilykrby.cz/rss/pf-heureka.xml 。このxmlフィードを使用して、自分のサーバーで別の変更を作成したいと思います。Prislusenstviという単語を含むすべてのノードCATEGORYTEXTを変更したいと思います。何かを試しましたが、XMLを変更せずにすべてのカテゴリのリストしか取得できませんでした:-( これが私のコードの例です。行$ kategorie ="nejakakategorie";は機能しません。

<?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

$kategoriexpathクエリによって返されるデータのコピーを含むループで使用される一時変数です。$xml実際には、オブジェクトに直接値を設定する必要があります。

個人的には、XMLコンテンツ自体をsimpleXMLオブジェクトに解析する前に、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++;
}
?>
于 2012-09-13T18:18:29.833 に答える