じゃらんのAPIを使ったwebサービスを使おうと思ってわからないところがあったので質問します。


PHP5のsimplexml_load_fileを使ってxmlファイルのパースはできました。
リクエスト値は正しく返ってきて表示されるのですがたぶん「名前空間」に関するエラーも出てしまいます。

parser warning : xmlns: URI jws is not absolute in xxxxxx(行番号)

のようにエラーが出ます。

リクエストで返ってきたxmlは
<?xml version="1.0" encoding="UTF-8" ?>
- <Results xmlns="jws">
<NumberOfResults>150</NumberOfResults>
<DisplayPerPage>10</DisplayPerPage>
<DisplayFrom>1</DisplayFrom>
<APIVersion>1.1</APIVersion>
- <Hotel>
....略

のような構造になっています。

これをエラーが出ない状態にしたいです。
文字コードに関する答えはクリアしているのでここでは必要ありません。
どうかよろしくお願いします。

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

ベストアンサー

id:stephanie No.2

回答回数29ベストアンサー獲得回数2

ポイント50pt

上記のxmlnsの置換で動作出来る事をPHP 5.2.0で確認しております。

(file_get_contentsの代わりにHTTP_Requestを使用してはいますが…)

http://ayu.commun.jp/hatena/jws.php?s_area=

このURLのs_areaパラメータに012105等の小エリアコードをいれてお試しください。

ソースコードは下記のURLで閲覧可能です。

http://ayu.commun.jp/hatena/jws.phps

id:plugbot

お手数かけました。ようやくできました。

とても分かりやすかったです。勉強になりました。

アップされたものがあれば削除しても構いません。ありがとうございました。

2007/01/10 22:27:40

その他の回答1件)

id:stephanie No.1

回答回数29ベストアンサー獲得回数2

ポイント50pt

ネームスペースはURIでなければならないようなので以下のように置換してみてはいかがでしょうか?

$data = file_get_contents('http://jws.jalan.net/APILite/HotelSearch/V1/?key=');
$result = str_replace('xmlns="jws"', 'xmlns:jws="http://jws.jalan.net/"', $data);
$xml = simplexml_load_string($data);
id:plugbot

うまくいきませんでした。

できれば実際に試して動作を確認して欲しいです。

参考URLです

http://jws.jalan.net/ws/viw/U01001

2007/01/10 21:35:08
id:stephanie No.2

回答回数29ベストアンサー獲得回数2ここでベストアンサー

ポイント50pt

上記のxmlnsの置換で動作出来る事をPHP 5.2.0で確認しております。

(file_get_contentsの代わりにHTTP_Requestを使用してはいますが…)

http://ayu.commun.jp/hatena/jws.php?s_area=

このURLのs_areaパラメータに012105等の小エリアコードをいれてお試しください。

ソースコードは下記のURLで閲覧可能です。

http://ayu.commun.jp/hatena/jws.phps

id:plugbot

お手数かけました。ようやくできました。

とても分かりやすかったです。勉強になりました。

アップされたものがあれば削除しても構いません。ありがとうございました。

2007/01/10 22:27:40

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

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

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

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

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