DOM使用の基本(リンク形式)

Scriptを使い、HTMLからXML文書を操作するには以下の手続きが必要。
 (1)XML文書をHTMLページにリンクする。
    <body>内の先頭部分に <xml ID="名前" SRC="XML文書のパス"></xml> の書式で記述。
 (2)DOMのルートオブジェクト(Documentノード)にアクセスする
    Scriptコード内に以下のように記述する(ID名は(1)と同じにすること)。
        Document = XML文書のID名.XMLDocument;
  これでDocumentオブジェクトを使いXML文書内の全オブジェクトを操作できる。

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

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<start>
  <top>KodayanHPのContents</top>
  <!--以下はKodayanHomepageの内容一覧-->
  <list>
    <main>大阪日本橋データ</main>
    <sub>日本橋Map</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>
    <sub>Java Script</sub>
  </list>
  <end>以上です(01/2/6)</end>
</start>

HTMLソース

<SCRIPT language="JavaScript"><!--
function Info(p){
  Document = testsp.XMLDocument;	//XML文書のルートオブジェクト(Documentノード)にアクセスする
  
  if(p=="nodename"){
   dv0.innerText = "(0番目要素のnodeNameプロパティは:)" + 
		Document.documentElement.childNodes(0).nodeName;
   dv1.innerText = "(1番目要素のnodeNameプロパティは:)" + 
		Document.documentElement.childNodes(1).nodeName;
   dv3.innerText = "(3番目要素のnodeNameプロパティは:)" + 
		Document.documentElement.childNodes(3).nodeName;
  }
  if(p=="nodetype"){
   dv0.innerText = "(0番目要素のnodeTypeプロパティは:)" + 
		Document.documentElement.childNodes(0).nodeType;
   dv1.innerText = "(1番目要素のnodeTypeプロパティは:)" + 
		Document.documentElement.childNodes(1).nodeType;
   dv3.innerText = "(3番目要素のnodeTypeプロパティは:)" + 
		Document.documentElement.childNodes(3).nodeType;
  }
  if(p=="nodetypestring"){
   dv0.innerText = "(0番目要素のnodeTypeStringプロパティは:)" + 
		Document.documentElement.childNodes(0).nodeTypeString;
   dv1.innerText = "(1番目要素のnodeTypeStringプロパティは:)" + 
		Document.documentElement.childNodes(1).nodeTypeString;
   dv3.innerText = "(3番目要素のnodeTypeStringプロパティは:)" + 
		Document.documentElement.childNodes(3).nodeTypeString;
  }
  if(p=="text"){
   dv0.innerText = "(0番目要素のtextプロパティは:)" + 
		Document.documentElement.childNodes(0).text;
   dv1.innerText = "(1番目要素のtextプロパティは:)" + 
		Document.documentElement.childNodes(1).text;
   dv3.innerText = "(3番目要素のtextプロパティは:)" + 
		Document.documentElement.childNodes(3).text;
  }
  if(p=="nodevalue"){
   dv0.innerText = "(0番目要素のnodeValueプロパティは:)" + 
		Document.documentElement.childNodes(0).nodeValue;
   dv1.innerText = "(1番目要素のnodeValueプロパティは:)" + 
		Document.documentElement.childNodes(1).nodeValue;
   dv3.innerText = "(3番目要素のnodeValueプロパティは:)" + 
		Document.documentElement.childNodes(3).nodeValue;
  }
  if(p=="xml"){
   dv0.innerText = "(0番目要素のxmlプロパティは:)" + 
		Document.documentElement.childNodes(0).xml;
   dv1.innerText = "(1番目要素のxmlプロパティは:)" + 
		Document.documentElement.childNodes(1).xml;
   dv3.innerText = "(3番目要素のxmlプロパティは:)" + 
		Document.documentElement.childNodes(3).xml;
  }
}
//--></SCRIPT>
</HEAD>

<BODY>
<XML ID="testsp" SRC="test01.xml"></XML>  <!--XML文書をHTMLページにリンクする-->

<BUTTON onclick="Info('nodename')">nodeNameプロパティ</BUTTON>
<BUTTON onclick="Info('nodetype')">nodeTypeプロパティ</BUTTON>
<BUTTON onclick="Info('nodetypestring')">nodeTypeStringプロパティ</BUTTON>
<BUTTON onclick="Info('text')">textプロパティ</BUTTON>
<BUTTON onclick="Info('nodevalue')">nodeValueプロパティ</BUTTON>
<BUTTON onclick="Info('xml')">xmlプロパティ</BUTTON>
<HR>
<DIV id="dv0"></DIV>
<DIV id="dv1"></DIV>
<DIV id="dv3"></DIV>

end(01/2/13)