※ ChatGPTを利用し、要約された質問です(原文:PHP5で名前空間を取り扱う)
PHP5で楽天トラベルキーワード検索APIを利用する方法とは?
このQ&Aのポイント
楽天ウェブサービスの楽天トラベルキーワード検索APIを、PHP5で利用する方法について教えてください。
名前空間で定義されている出力パラメータを取得する際にエラーが発生してしまいます。
IBMの「PHPでのSimpleXML処理」を参考にしましたが、正しいコーディング方法を教えてください。
楽天ウェブサービスの楽天トラベルキーワード検索APIを、PHP5で利用しようとしています。
■楽天トラベルキーワード検索API
http://webservice.rakuten.co.jp/api/keywordhotelsearch/
出力パラメータの一部は名前空間で定義されており、下記の参考Webサイトのコーディング例に従ってソースを実行しましたが、children関数を実行する行で、
"Fatal error: Call to a member function children() on a non-object in "
と表示されてしまいました。
どのようにコーディングするのが正しいのか、教えていただけないでしょうか。
■参考にしたWebサイト 「IBM PHPでのSimpleXML 処理」
http://www-06.ibm.com/jp/developerworks/xml/library/x-simplexml.shtml?ca=drs
■実行ソース
$xml = simplexml_load_file($restURL) or die("XMLパースエラー");
$cd = $xml->Response->header->children('http://api.rakuten.co.jp/rws/rest/Header');
■実行環境
PHP Version 5.1.4
Apache 2.0 Handler
■xmlの構造
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<header:Header xmlns:header="http://api.rakuten.co.jp/rws/rest/Header">
<Args>
<Arg key="User-Agent" value="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)">true</Arg>
<Arg key="developerId" value="****">true</Arg>
<Arg key="affiliateId" value="****">true</Arg>
<Arg key="operation" value="KeywordHotelSearch">true</Arg>
<Arg key="version" value="2007-04-11">true</Arg>
<Arg key="keyword" value="アートホテルズ札幌">true</Arg>
</Args>
<Status>Success</Status>
<StatusMsg />
</header:Header>
<Body>
<keywordHotelSearch:KeywordHotelSearch xmlns:keywordHotelSearch="http://api.rakuten.co.jp/rws/rest/KeywordHotelSearch/2007-04-11">
<hotelSimple>
<hotelNo>5903</hotelNo>
<hotelName>アートホテルズ札幌</hotelName>
<areaSum />
<hotelSpecialSum />
<middleClassCode>hokkaido</middleClassCode>
<smallClassCode>sapporo</smallClassCode>
<hotelInformationUrl>http://img.travel.rakuten.co.jp/image/tr/api/kw/JBe8h/?f_no=5903</hotelInformationUrl>
<hotelAffiliateUrl>http://***/hgc/04230ff1.13a55c09.04230ff2.eed97e0f/?pc=http%3A%2F%2Fimg.travel.rakuten.co.jp%2Fimage%2Ftr%2Fapi%2Fkw%2FJBe8h%2F%3Ff_no%3D5903</hotelAffiliateUrl>
</hotelSimple>
<recordCount>1</recordCount>
</keywordHotelSearch:KeywordHotelSearch>
</Body>
</Response>
お礼
ありがとうございます。 うまく行きました。