とあるXMLデータをPHPで扱うことになったんだけど、XMLデータの中に”&”が入っているとどうもいけないらしい。
$xml = simplexml_load_file("products.xml");
$products = $xml--->xpath("/rss");
print_r($products);
xPathする前にstr_replaceで&を置換しようにも、xmlデータにstr_replaceをどうやってかけていいのか悩んでいたら、file_get_contentsでXMLデータをそのまま読み込んで、str_replaceかけてsimplexml_load_stringで読んじゃえばOKとのアドバイスをもらった。
結局、次のようにすることで、無事に解決。
$xml = simplexml_load_file("products.xml");
$xml = str_replace("&", "アンド", $xml);
$products = $xml--->xpath("/rss");
print_r($products);