NodeListオブジェクト

・childNodesプロパティの内容や、getElementsByTagName()メソッドの返り値はノードの集合です。これがNodeListオブジェクト。

・NodeListオブジェクトを変数に代入しておくと
     ★個別のNodeは 変数(index番号) で参照できる。
     ★変数.item(index番号) を使っても上と同様。
     ★変数.lengthプロパティで含まれるNodeの個数を取得できる。

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

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<root>
<title>KodayanHPのContents</title>
<!--以下はKodayanHomepageの内容一覧-->
<contents>
<list>
<main>大阪日本橋データ</main>
<sub>日本橋Map</sub>
<sub>PCショップ名一覧</sub>
<sub>PCショップ価格比較</sub>
<sub>日本橋関連リンク集</sub>
</list>
<list>
<main>Webプログラミング</main>
<sub>CSSとDynamicHTML</sub>
<sub>PerでCGI</sub>
<sub>XML</sub>
<sub>Java Script</sub>
<sub>Java Applet</sub>
<sub>VB SCript</sub>
</list>
<list>
<main>その他</main>
<sub>お気に入りリンク集</sub>
<sub>お知らせ</sub>
<sub>HPの履歴</sub>
<sub>掲示板</sub>
<sub>アンケート</sub>
</list>
</contents>
</root>

HTMLソース

<SCRIPT language="JavaScript"><!--
//childNodesプロパティからNodeListオブジェクトを取得
function Test1(){
  Document = test2.XMLDocument;
  objNodes = Document.documentElement.childNodes(2).childNodes(0).childNodes;
  
  str = "";		//文字列変数の初期化
  for(i=0;i < objNodes.length;i++){
    str += (i + 1) + "番目要素のテキストは:<B>" 
      + objNodes(i).text
      + "</B><BR>";
  }
  dv.innerHTML = str;
}

//getElementByTagNameメソッドからNodeListオブジェクトを取得
function Test2(){
  Document = test2.XMLDocument;
  objNodes_main = Document.getElementsByTagName("main");
  
  str = "";		//文字列変数の初期化
  for(i=0;i < objNodes_main.length;i++){
    str += (i + 1) + "番目要素のテキストは:<B>" 
      + objNodes_main(i).text
      + "</B><BR>";
  }
  dv.innerHTML = str;
}
//--></SCRIPT>
</HEAD>

<BODY>
<XML ID="test2" SRC="[U]test02.xml"></XML>

<BUTTON onclick="Test1()">日本橋関連</BUTTON>
<BUTTON onclick="Test2()">要素名が「main」の内容だけ取り出す</BUTTON>
<DIV id="dv" style="border:1px red solid"></DIV>

end(01/2/28)