childNodesプロパティを使いXML文書から内容を取り出す

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)