とある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);