人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ここで質問したけどうまくできません。
http://q.hatena.ne.jp/1295792635
ここでも出てますが未解決?!
http://oshiete.goo.ne.jp/qa/6196790.html
ver2009でXML構造hotelBasicInfoが加わったらしいのですが、
このhotelBasicInfoを加えても駄目でした。

<?php

$file = 'http://api.rakuten.co.jp/rws/3.0/rest?developerId=[私のID]&operation=SimpleHotelSearch&version=2009-10-20&largeClassCode=japan&middleClassCode=akita&smallClassCode=tazawa' ;

$data = file_get_contents($file);
$data= str_replace('header:Header', 'Header', $data);
$data = str_replace('simpleHotelSearch:SimpleHotelSearch',
'simpleHotelSearch', $data);
$xml = simplexml_load_string($data);

var_dump($xmls); →Nullになる。

foreach($xmls as $hotel){
$hotelName = $hotel->hotelBasicInfo->hotelName;foreach($xml->Body->simpleHotelSearch->hotel as $hotel){
$hotelName = $hotel->hotelBasicInfo->hotelName;
$hotelSpecial = $hotel->hotelBasicInfo->hotelSpecial;
$address1 = $hotel->hotelBasicInfo->address1;

echoなどで表示
}
?>

Warning: Invalid argument supplied for foreach()
こんなエラーでForeachもまわりません。


●質問者: ぽこたん
●カテゴリ:コンピュータ インターネット
✍キーワード:009-1 AS BODY echo JAPAN
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● deflation
●15ポイント

以下の2行が間違っています。


(誤)

var_dump($xmls); →Nullになる。

foreach($xmls as $hotel){


(正)

var_dump($xml);

foreach($xml as $hotel){


http://q.hatena.ne.jp/

◎質問者からの返答

これははてな上での書き間違えですね。

実際には、Xmlとして動かしております。


2 ● rouge_2008
●100ポイント ベストアンサー

以下の部分で大文字小文字を間違えている為に置換されていないのが原因のようです。

str_replace('simpleHotelSearch:SimpleHotelSearch',
'simpleHotelSearch', $data);

ブラウザでアクセスしてXMLのソースを確認してみてください。

http://api.rakuten.co.jp/rws/3.0/rest?developerId=[デベロッパーID]&operation=SimpleHotelSearch&version=2009-10-20&largeClassCode=japan&middleClassCode=akita&smallClassCode=tazawa


$file = 'http://api.rakuten.co.jp/rws/3.0/rest?developerId=[デベロッパーID]&operation=SimpleHotelSearch&version=2009-10-20&largeClassCode=japan&middleClassCode=akita&smallClassCode=tazawa';

$data = file_get_contents($file);
$data= str_replace('header:Header', 'Header', $data);
$data = str_replace('SimpleHotelSearch:SimpleHotelSearch', 'simpleHotelSearch', $data);
$xml = simplexml_load_string($data);

echo "<pre>\n";
var_dump($xml);
echo "</pre>\n";

foreach($xml->Body->simpleHotelSearch->hotel as $hotel){
$hotelName = $hotel->hotelBasicInfo->hotelName;
$hotelSpecial = $hotel->hotelBasicInfo->hotelSpecial;
$address1 = $hotel->hotelBasicInfo->address1;

echo "ホテル名称:" . $hotelName . "<br>\n";
echo "紹介:" . $hotelSpecial . "<br>\n";
echo "住所:" . $address1 . "<br>\n";
}

◎質問者からの返答

おかげさまで、動くようになりました。

おっしゃるとおり、小文字と大文字のsが問題だったようです。

かなり悩んでいたので、大変参考になりました。

また、何かありましたらご指導宜しくお願いいたします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ