simpleXMLを使ってパースする。
なんとなく、リクエストURLをたたいて返ってきたXMLをHTMLに埋め込む方法がわかったので忘れないように記述しておきます。
今回はライブドア天気のウェブサービスを使って前橋の天気を出力してみます。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ライブドアの天気予報を表示する</title> </head> <body> <?php //ライブドアの天気予報を表示する関数。 function lwws($city,$day){ //XMLデータ取得用ベースURL $req = "http://weather.livedoor.com/forecast/webservice/rest/v1"; //XMLデータ取得用リクエストURL $req .= "?city=".$city."&day=".$day; //XMLファイルをパースし、オブジェクトを取得 $xml = simplexml_load_file($req) or die("xmlパースエラー"); //$xmlオブジェクトの中身を確認してみる。 /* echo "<pre>"; var_dump($xml); echo "</pre>"; */ $ret = '<div class="lwws">'; $ret .= "<div>".$xml->title."</div>"; $ret .= "<div><img src=\"".$xml->image->url."\" alt=\"".$xml->image->title."\"></div>"; $ret .= "<div>".$xml->description."</div>"; $ret .= "<div>最高気温".$xml->temperature->max->celsius."度<div>"; $ret .= "<div>最低気温".$xml->temperature->min->celsius."度<div>"; $ret .= "</div>"; return $ret; } echo "<h1>ライブドアの天気予報をlivedoor weather web serviceを使って表示する。</h1>\n"; //リクエスト用のパラメータを設定する $city="58";//前橋の天気に設定 $day="tomorrow";//明日の天気に設定 //ライブドア天気予報を表示するための自分で定義した関数をコール echo lwws($city,$day); ?> </body> </html>
いまだに「パース」の意味がよくわかっていないけど、とりあえずsimpleXML関数でリクエストのURLを指定してあげて、戻ってきたXMLのなかの必要な値を参照してあげればいいって感じなのかな?