スキーとネットとロードバイクと旅。

群馬で自由人からリーマンになった恋する男の趣味に生きるブログ。

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のなかの必要な値を参照してあげればいいって感じなのかな?