ここで質問したけどうまくできません。

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もまわりません。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2011/01/28 01:06:21
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rouge_2008 No.2

回答回数595ベストアンサー獲得回数351

ポイント100pt

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

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";
}

id:hiroponta

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

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

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

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

2011/01/28 01:05:34

その他の回答1件)

id:deflation No.1

回答回数1036ベストアンサー獲得回数126

ポイント15pt

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


(誤)

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

foreach($xmls as $hotel){


(正)

var_dump($xml);

foreach($xml as $hotel){


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

id:hiroponta

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

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

2011/01/27 22:00:42
id:rouge_2008 No.2

回答回数595ベストアンサー獲得回数351ここでベストアンサー

ポイント100pt

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

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";
}

id:hiroponta

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

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

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

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

2011/01/28 01:05:34

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません