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)