・XML文書内を検索し、一致したレコードだけを表示する
(注意:レコードセット構造をもつXML文書に限る)
[サンプルHTMLを表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<start>
<dosv>
<name>ゲートウェイカントリー・大阪</name>
<adr>大阪市中央区日本橋2-7-5ワールドインテリアビル</adr>
<tel>0120-54-2000</tel>
<time>年中無休、10:30〜19:00</time>
<url>http://www.gw2k.co.jp/</url>
</dosv>
<dosv>
<name>JP テクノランド(上新)</name>
<adr>大阪市浪速区日本橋5-6-7</adr>
<tel>06-6634-1211</tel>
<time>第1,2,3水曜日、平日=10:30〜19:00,土日祝日=10:30〜19:30</time>
<url>"http://www.joshin.co.jp/</url>
</dosv>
<dosv>
<name>ソフマップ5号店</name>
<adr>大阪市浪速区日本橋5-7-17高梁ビル</adr>
<tel>06-6634-6306</tel>
<time>年中無休、11:00〜21:00</time>
<url>http://www.sofmap.co.jp/</url>
</dosv>
<dosv>
<name>DOS/Vパラダイス日本橋店</name>
<adr>大阪市浪速区日本橋5-9-19</adr>
<tel>06-6635-0568</tel>
<time>年中無休、10:30-19:30,日祝10:30-18:30</time>
<url>http://www.dospara.co.jp/osk/</url>
</dosv>
</start>
HTMLソース
<SCRIPT language="JavaScript"><!--
function SearchDosv(){
keyword = wordbox.value; //Textboxに入力した検索語
if(keyword == ""){ //検索語が未入力の場合
Result.innerHTML = "<B>検索するショップ名を入力してください!!</B>";
return;
}
dosvshop.recordset.moveFirst(); //先頭レコードに移動する
str = ""; //検索結果を格納する文字列変数を初期化
while(!dosvshop.recordset.EOF){ //レコード末尾に達するまで繰り返す
shopname = dosvshop.recordset("name").value; //現在のレコードのショップ名
if(shopname.indexOf(keyword) >= 0){ //ショップ名に検索語が含まれている場合
//検索語に一致したレコード内容を格納。HTMLタグで書式化する。
str += "<DT style='color:red'>" + dosvshop.recordset("name") + "</DT>"
+ "<DD>" + dosvshop.recordset("adr") + "|"
+ dosvshop.recordset("tel") + "|"
+ dosvshop.recordset("time") + "|"
+ dosvshop.recordset("url") + "</DD>";
}
dosvshop.recordset.moveNext(); //次のレコードに移動する
}
//以下は検索結果の表示
if(str == "")Result.innerHTML = "<I>見つかりません!!</I>";
else Result.innerHTML = "<DL>" + str + "</DL>";
}
//--></SCRIPT>
</HEAD>
<BODY>
<xml ID="dosvshop" SRC="search01.xml"></xml>
<P>ショップ名を入力:
<INPUT type="text" id="wordbox" size="16">
<BUTTON onclick="SearchDosv()">検索</button></P>
<H4>検索結果</H4>
<DIV id="Result" style="border:thin solid green">
</DIV>
end(01/2/6)