アプリ版:「スタンプのみでお礼する」機能のリリースについて

楽天ウェブサービスの楽天トラベルキーワード検索APIを、PHP5で利用しようとしています。

   ■楽天トラベルキーワード検索API
    http://webservice.rakuten.co.jp/api/keywordhotel …

出力パラメータの一部は名前空間で定義されており、下記の参考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/libr …


■実行ソース

$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/KeywordHotelSe …
<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/ …
<hotelAffiliateUrl>http://hb.afl.rakuten.co.jp/hgc/04230ff1.13a55c0 …
</hotelSimple>
<recordCount>1</recordCount>
</keywordHotelSearch:KeywordHotelSearch>
</Body>
</Response>

A 回答 (2件)

ストレートにSimpleXMLで読込はできないようですね。


次のやり方でoKでした。

$restData = file_get_contents($apiurl));
$restData = str_replace('header:Header', 'Header', $restData);
$restData = str_replace('getAreaClass:GetAreaClass', 'GetAreaClass', $restData);
$xml = simplexml_load_string($restData);

参考URL:http://www.dayofglory.jp/archives/ent-000100.html
    • good
    • 0
この回答へのお礼

ありがとうございます。

うまく行きました。

お礼日時:2007/09/11 20:32

$cd = $xml->Response->header->children('​

http://api.rakuten.co.jp/rws/rest/Header');
のところの「Response->」をなくすとどうでしょう?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!