php の simplexml_load_string で名前空間も取得する、ものすごく雑な方法
php の simplexml_load_string でnamespace(名前空間)も取得する、ものすごく雑な方法
simplexml_load_string では <aa:abc> 等の名前空間を取得しようとすると children 等を用いて取得しなければならず、そのまま 配列→json とならない
オレオレアプリ用なので <aa:abc> → <aa__abc> というタグに置き換えるという、ものすごく雑な方法で取得してみる
※<rdf: で始まるタグを除外 しているだけ(爆
$url = 'https://example.com/hogehoge.xml';
$xml = file_get_contents($url);
$xml = preg_replace('/<([\/]*)(?!rdf)([a-z]+):([^>]+)>/', '<$1$2__$3>', $xml);
$rss = simplexml_load_string($xml);
print_r(json_decode(json_encode($rss), true));
コメント