FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[PHP]ネームスペースをとりあえず無視してXMLをパースする

PHPで、ネームスペース付きのXMLをパースする際に面倒だったのでメモしておく。
SimpleXMLを使っていたのだが、ネームスペース付きのXMLの場合、ネームスペースの定義がちゃんとしていないと
エラーになってしまう。

開発中のプロジェクトで、ネームスペースを別会社が定義しているような場合には、それらが整う前に
平行して開発を進めなければならない。(ことがある)

そんな場合は、とりあえずネームスペースを無視してパースだけやってしまいたいものである。

これの解決のために、xmlns という文字列を別の文字列に変換してしまうというやり方を見つけた。
これは盲点だったなあ...

具体的にはこうだ。

$xml_string = preg_replace('/\sxmlns/', ' _xmlns', $org_xml_string);


$org_xml_stringにはオリジナルのXML文字列が入っている。
xmlns --> _xmlns に変換してしまうので、(ほとんどの場合)エラーにならずにパースできる。
これで、プロトコルを壊さずに平行開発ができる。
スポンサーサイト
コメント
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。