スポンサーサイト

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

SimpleXML関数の扱い方

PHPに限った事じゃないのかもしれないけど、ちょっとハマった事があったのでメモ。

最近色々なところでAPIが公開されてきているので、PHP5のSimpleXML関数を使って簡単に取ってきて、後は好きなように表示するようなクラスを作っていたんだけれど、作成中に問題が発生。

例えば、XMLのデータを「simplexml_load_file」とか「simplexml_load_string」とか、とにかくSimpleXML系の関数を使った場合、SimpleXMLElementオブジェクトに返り値が配列なり普通のstringなりで渡される。

とにかくオブジェクト。

配列の場合

Array(
[0] SimpleXMLElement
[title] => タイトル

[1] SimpleXMLElement
[title] => タイトル

[2] SimpleXMLElement
[title] => タイトル

[3] SimpleXMLElement
[title] => タイトル
)

なんていうふざけた構造になる。
(自分の能力不足だけかもしれない)

こんなんじゃ使いにくいので、とにかく普通の配列にしたい。

というわけで色々と試した結果、そのオブジェクト形式の配列が入っている変数が「$xmlArray」だとすると

$xmlArray = (array)$xmlArray;

とすればいい。

文字だったら

$xmlStr = (string)$xmlStr;

のように、キャストすれば例えば1個の文字列の為だけにオブジェクトを扱う必要もなくなる。

PHP5じゃないとSimpleXML関数は使えないけど、PEARのXML_Parserより手軽に扱えるし、SimpleXML関数で使い方がイマイチ分からない人もちょこちょこいるっぽい(検索したら質問系が比較的多かった)から、これで少しでも誰かの役に立てばいいなぁ。
スポンサーサイト

この記事のトラックバックURL

http://kgworks.blog47.fc2.com/tb.php/108-777046b4

コメント

承認待ちコメント
このコメントは管理者の承認待ちです

コメントする

管理者にだけ表示を許可する

Template Designed by DW99

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