わかったブログ » プログラム » PHP »

XML_Serializer

08/10/03 XML_Serializer このエントリーをはてなブックマークに追加

PHP4でXMLファイルのパースは難しい。PHP5から採用されているsimple_xmlが使えないからだ。

そこで、PEARのXML_Serializerを利用することになる。しかし、ひとつ問題が判明した。

XML_Serializerは、例えば楽天ウェブサービスで商品情報をパースするとき、取得商品データーが複数のときと単数のときで、挙動が違うのだ。

複数のときは、オブジェクト内で配列構造を作ってくれるが、単数の場合は、配列にはならない。

よって、

foreach($object->Item as $item){ ~ }

を利用したプログラムだと、商品数が単数の場合は、上手く動かない。困った......。

先日、PHP5で動かしていたプログラムを、PHP4のサーバー上で動かそうとしたら、smple_xmlが'undefined function'となってしまい、PEARのXML_Serializerを利用したときに判明した。


しかし、解決策はあっさり見つかった。

こちらのエントリー
http://zap.hakox.net/index.php?e=401

XML_Serializerのオプション設定で、配列化したいアイテム名を設定してあげれば、問題はすべて解決する

'forceEnum' => array('Item',...)

これでPHP4でXMLをパサーしたい場合も安心。
ちなみに、simple_xmlは自動的にやってくれるため、PHP5を利用するなら、問題ない。


確か同じような問題が、JavascriptのJSONscriptRequestでもあった気がする。
こっちはデーターの数を判別して力技でなんとかした。

書き手のプロフィールはこちら ⇒ かん吉プロフィール

当ブログの記事に共感していただけたら、また読みに来ていただけると嬉しいです。読んでくれる方の数が多くなると、更新するヤル気に繋がります(^^)

ツイッターGoogle+Google+ページミクシイページでも、更新履歴を流してます。



Share on Tumblr



このエントリーをはてなブックマークに追加  

当ブログの更新をメールで受け取れます

配信: FeedBurner
読者さんのお声をお聞かせください
同じテーマの記事
トラックバック

※当サイト内ページへのリンクがないと、受け付けない仕様になっています
トラックバック一覧
あわせて読みたい Twitter / kankichi フィードメーター - わかったブログ
製品レビューポータル「MONO-PORTAL」
人気ブログランキングへ
Movable Type
&php.gif
プロフィール
©2006-2012 わかったブログ All Rights Reserved.