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)