物件総数を表示する

 Smatch!が用意しているAPIを使ってみます。Smatch!が提供しているサービス内容についてはスマッチWeb サービスについてのページに用意されています。
 まずは簡単なところで、Smatch!が提供する物件情報を取得してみます。物件情報を取得するには以下のURLにアクセスします。

http://search.smatch.jp/smatch/getBukkenInfo.do

 次にURLパラメータに、求める物件情報に必要なデータを付加します。日本語の場合、SHIFT JIS形式でエンコードして送信するように記載されています。Smatch!で利用できるパラメータに関してはSmatch!物件検索サービスを参照してください。ここでは「東京」「新築マンション」「4000万円未満」で検索を行います。FirefoxやIEで以下のURLにアクセスするとXMLドキュメントツリーで見ることができます。Safariなどでは見ることができないのでSafariの場合には以下のサンプルを実行するとXMLデータを見ることができます。(実際のサンプルを実行する

http://search.smatch.jp/smatch/getBukkenInfo.do?QUERY=%93%8C%8B%9E&SE=010&KAMIX=4000

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Smatch! Ajaxサンプル</title>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript"><!--
function getList()
{
var q = "%93%8C%8B%9E"; // 東京の文字のSHIFT JISコード
var sType = "SE=010"; // 表示種別
var maxPrice = "KAMIX=4000"; // 物件価格上限
var reqURL = "http://search.smatch.jp/smatch/getBukkenInfo.do?QUERY="+q+"&"+sType+"&"+maxPrice;
new Ajax.Request("getXML.rb?"+reqURL, { method: "get", onComplete: displayData });
}
function displayData(httpObj)
{
$("result").innerText = httpObj.responseText;
$("result").textContent = httpObj.responseText;
}
// --></script>
</head>
<body>
<h1>Smatch! Ajaxサンプル</h1>
<form>
<input type="button" value="物件情報取得" onClick="getList()">
</form>
<div id="result"></div>
</body>
</html>

 それではXMLデータから該当した物件総数を取得してみましょう。検索結果で得られた物件情報の総数はresultsetタグ内にあるtotalhits属性の値になります。属性値を読み出す場合にはgetAttribute()を使います。パラメータには読み出す属性名を指定します。totalhitsを指定すれば該当した物件の合計の値を読み出すことができます。(実際のサンプルを実行する


<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Smatch! Ajaxサンプル</title>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript"><!--
function getList()
{
var q = "%93%8C%8B%9E"; // 東京の文字のSHIFT JISコード
var sType = "SE=010"; // 表示種別
var maxPrice = "KAMIX=4000"; // 物件価格上限
var reqURL = "http://search.smatch.jp/smatch/getBukkenInfo.do?QUERY="+q+"&"+sType+"&"+maxPrice;
new Ajax.Request("getXML.rb?"+reqURL, { method: "get", onComplete: displayData });
}
function displayData(httpObj)
{
var xmlObj = httpObj.responseXML;
var resTag = xmlObj.getElementsByTagName("resultset")[0];
var n = resTag.getAttribute("totalhits");
$("result").innerHTML = "合計"+n+"件の物件があります";
}
// --></script>
</head>
<body>
<h1>Smatch! Ajaxサンプル</h1>
<form>
<input type="button" value="物件情報取得" onClick="getList()">
</form>
<div id="result"></div>
</body>
</html>

[目次へ]

(2006.6.17)