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)