selectNodesメソッド
●書式 var 戻り値 = Nodeオブジェクト.selectNodes(xPath式)
・戻り値・・・引数のxPath式にマッチしたノードの集合、即ちNodeListオブジェクトを返す。マッチするものが無い場合、空のNodeListを返す。
・Nodeオブジェクトは、Documentオブジェクト即ちXML文書そのものを指定(例1)。または特定のノードを指定することもできる(例3)
・引数のxPath式・・・参照したいノードのxPath式を""で囲い、文字列として渡す。
selectSingleNodeメソッド
●書式 var 戻り値 = Nodeオブジェクト.selectSingleNode(xPath式)
・戻り値・・・引数のxPath式にマッチした最初のNodeオブジェクトを返す。マッチするものが無い場合nullを返す。
・Nodeオブジェクトは、Documentオブジェクト即ちXML文書そのものを指定(例2)。または特定のノードを指定することもできる(例3)
・引数のxPath式・・・参照したいノードのxPath式を""で囲い、文字列として渡す。
[サンプルを表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<家系>
<title>一族郎党</title>
<叔父>叔父さん
<従姉妹>叔父さんの娘</従姉妹>
</叔父>
<親>お父さんお母さん
<姉>お姉さん
<おい>お姉さんの息子</おい>
</姉>
<私>おいら
<子>長男
<孫1>長男の娘
<曾孫>長男の娘の子</曾孫>
</孫1>
</子>
<子>長女
<孫2>長女の息子</孫2>
</子>
<子>次男</子>
</私>
<弟>弟
<めい>弟の娘</めい>
</弟>
<妹>妹</妹>
</親>
<叔母>叔母さん
<従兄弟>叔母さんの息子</従兄弟>
</叔母>
<end>以上です(2004/4/23)</end>
</家系>
HTMLソース
<SCRIPT language="JavaScript"><!--
function test(){
var xmlobj=new ActiveXObject("MSXML2.DOMDocument");
xmlobj.async=false;
xmlobj.load("selectnode01.xml");
//(例1)
var objNodeList = xmlobj.selectNodes("//私/子");
var str = "私の子は <b>" + objNodeList.length + "</b> 人です<hr>";
for(i=0;i<objNodeList.length;i++){
str += objNodeList.item(i).xml + "<br>";
}
data1.innerHTML = str; //(例2)
var objSingleNode = xmlobj.selectSingleNode("//私/子");
data2.innerHTML = objSingleNode.xml; //(例3)
var objWatasi = xmlobj.selectSingleNode("//私");
var objMago1Lists = objWatasi.selectNodes("./子/孫1");
for(i=0;i<objMago1Lists.length;i++){
str = "私の1番目の孫は「" + objMago1Lists.item(i).xml + "」<br>";
}
var objMago2 = objWatasi.selectSingleNode("./子/孫2");
str += "私の2番目の孫は「" + objMago2.xml + "」";
data3.innerHTML = str;
}
//--></SCRIPT>
</HEAD>
<BODY onload=test()>
<P>selectNodesメソッドの実行結果 </P>
<div id="data1" style="margin-left:30px;border:1px solid green"></div>
<P>selectSingleNodeメソッドの実行結果 </P>
<div id="data2" style="margin-left:30px;border:1px solid green"></div>
<P>(例3) </P>
<div id="data3" style="margin-left:30px;border:1px solid green"></div>
</BODY>
end(04/4/23)