childNodesプロパティの活用
Document.documentElement.childNodes(2).childNodes(1).childNodes.length
(ルート要素下の3番目の子要素内の2番目の子要素のchildNodesリストの個数を意味する)
(<start>要素下の<contents>要素内の2番目の<list>要素)
Document.documentElement.childNodes(2).childNodes(i).childNodes(0).text
(ルート要素下の3番目の子要素内のi番目の子要素内の1番目の子要素のtextプロパティ)
(<start>要素下の<contents>要素内のi番目の<list>要素内の<main>要素のテキスト)
[サンプルHTML文書を表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<start>
<top>KodayanHPのContents</top>
<!--以下は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 Applet</sub>
</list>
<list>
<main>その他</main>
<sub>お気に入りリンク集</sub>
<sub>お知らせ</sub>
<sub>HPの履歴</sub>
<sub>掲示板</sub>
</list>
</contents>
<end>以上です(01/2/15)</end>
</start>
HTMLソース
<SCRIPT language="JavaScript"><!--
function Info(){
Document = test2.XMLDocument;
sp.innerText = Document.documentElement.childNodes(2).childNodes.length;
}
function Header(){
Document = test2.XMLDocument;
str = ""; //文字列変数の初期化
for(i=0;i < Document.documentElement.childNodes(2).childNodes.length;i++)
{
str += "<P><B>"
+ Document.documentElement.childNodes(2).childNodes(i).firstChild.text
+ "</B></P>";
}
dv.innerHTML = str;
}
function Web(){
Document = test2.XMLDocument;
str = ""; //文字列変数の初期化
for(i=1;i < Document.documentElement.childNodes(2).childNodes(1).childNodes.length;i++){
str += "<B>"
+ Document.documentElement.childNodes(2).childNodes(1).childNodes(i).text
+ "</B><BR>";
}
dv.innerHTML = str;
}
function Contents(){
Document = test2.XMLDocument;
str = ""; //文字列変数の初期化
for(i=0;i < Document.documentElement.childNodes(2).childNodes.length;i++){
str += "<P><B>見出し:</B>"
+ "<SPAN style='color:red;font:bold 12pt'>"
+ Document.documentElement.childNodes(2).childNodes(i).childNodes(0).text + "</SPAN><BR>"
+ Document.documentElement.childNodes(2).childNodes(i).childNodes(1).text + "<BR>"
+ Document.documentElement.childNodes(2).childNodes(i).childNodes(2).text + "<BR>"
+ Document.documentElement.childNodes(2).childNodes(i).childNodes(3).text + "<BR>"
+ Document.documentElement.childNodes(2).childNodes(i).childNodes(4).text + "</P>";
}
dv.innerHTML = str;
}
//--></SCRIPT>
</HEAD>
<BODY>
<XML ID="test2" SRC="test02.xml"></XML>
<BUTTON onclick="Info()">contents内の子ノード数は</BUTTON>
---→<SPAN id="sp"></SPAN>
<BUTTON onclick="Header()">見出しだけ取り出す</BUTTON>
<BUTTON onclick="Web()">Webプログラミング内容だけ取り出す</BUTTON>
<BUTTON onclick="Contents()">contents内容を全て取り出す</BUTTON>
<DIV id="dv"></DIV>
end(01/2/15)