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));



コメント