データの選択抽出 2

selectNodes()メソッドを使えば必要なノード集合だけを取り出せる。この時、引数に取り出したいノードのxPath式を記述する。この引数のxPath式を選択メニューから選択し、動的に変更できるようにする。
ポイントはselectNode()の引数の書き換え。

[サンプルを表示](下のフレームに)

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<root>
<title>銘柄企業情報</title>
<info>2004/8/20現在</info>
<data>
<name code="6752" 業種分類="電気機器">松下電器産業
<本社>大阪府門真市大字門真1006</本社><代表者>中村邦夫</代表者>
<設立日>1935年12月15日</設立日><従業員数>51340人</従業員数>
<決算>3月末日</決算><中間配当>9月</中間配当><単元株数>1000株</単元株数>
<特色>総合家電首位。デジタル家電・半導体主力に業績回復途上。04年度から松下電工を連結子会社に</特色>
</name>


・・・(省略)・・・・


<name code="7261" 業種分類="輸送用機器">マツダ
<本社>広島県安芸郡府中町新地3-1</本社><代表者>井巻久一</代表者>
<設立日>1920年1月30日</設立日><従業員数>35627人</従業員数>
<決算>3月末日</決算><中間配当>9月</中間配当><単元株数>1000株</単元株数>
<特色>フォード傘下の完成車メーカー。国内メーカーでは中位。ブランド戦略の再構築が奏功</特色>
</name>
</data>
<etc>データは「Yahoo!ファイナンス(http://quote.yahoo.co.jp/)」より(04/8/22)</etc>
</root>

HTMLソース

<SCRIPT language="JavaScript"><!--
function Change(){
var xmlobj=new ActiveXObject("MSXML2.DOMDocument");
xmlobj.async=false;
xmlobj.load("../kabu4.xml");
var gr = document.fm.group.options.value;
var un = document.fm.unit.options.value;
var kabulists = xmlobj.selectNodes("/root/data/name[@業種分類='"+gr+"' and 単元株数='"+un+"']");
if(kabulists.length == 0){
var str = "★ 該当する企業はありません! ★";
}else{
str = "<table border='1'>";
for(i=0;i<kabulists.length;i++){
str += "<tr><td>" + kabulists(i).firstChild.text + "</td>";
str += "<td>" + kabulists(i).getElementsByTagName("代表者")(0).text + "</td>";
str += "<td>" + kabulists(i).getElementsByTagName("本社")(0).text +"</td></tr>";
}
str += "</table>";
}
dv.innerHTML = str;
}
//--></SCRIPT>
</HEAD>
<BODY>
<P>業種分類と単元株数を選択して「表示」ボタンを押せば。。。 </P>
<form name="fm">
業種分類<select name="group">
<option value="電気機器" selected>電気機器</option>
<option value="銀行業">銀行業</option>
<option value="小売業">小売業</option>
<option value="輸送用機器">輸送用機器</option>
</select>
単元株数<select name="unit">
<option value="100株" selected>100株</option>
<option value="500株">500株</option>
<option value="1000株">1000株</option>
<option value="単元株制度なし">単元株制度なし</option>
</select>
・・→<button onclick="Change()">表示</button>
</form>
<P> </P>
<DIV id="dv" style="margin-left:20px;border:1px solid green">&nbsp;&nbsp;</DIV>
</BODY>

end(04/12/5)