テキストノードを生成するには、createTextNode()メソッドでTextノードを作りappendChild()メソッドで実際にXML文書に追加する。削除はremoveChild()メソッドを使いTextノードを削除する。
★Nodeオブジェクトのtextプロパティは値の取得・設定が可能。これを利用しノードのtextプロパティに値を代入すればテキストノードの追加ができる。また ""を代入すれば削除できる。ただし、textプロパティは子、孫以下総ての下位ノードを置き換えてしまうので注意が必要。
■createTextNode()メソッド
・Documentオブジェクトのメソッド。Textノードを生成する。appendChild()メソッドでXML文書に追加する。
・(書式) 戻り値 = Documentオブジェクト.createTextNode("テキスト内容")
・戻り値・・・生成されたTextオブジェクト
[サンプルXML文書を表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<家系>
<親>お父さんお母さん
<姉>お姉さん</姉>
<私>
<長男><孫1>長男の娘</孫1></長男>
<長女><孫2>長女の息子</孫2></長女>
<次男>下の息子<孫1>次男の娘</孫1></次男>
<次女>下の娘<孫2>次女の息子</孫2></次女>
</私>
<弟>おとうと</弟>
</親>
</家系>
HTMLソース
<SCRIPT language="JavaScript"><!--
//元の内容を表示 function test1(){
var xmlobj=new ActiveXObject("MSXML2.DOMDocument");
xmlobj.async=false;
xmlobj.load("text01.xml");
var objChilds = xmlobj.selectSingleNode("//私").childNodes;
var str = "私の子供は";
for(i=0;i<objChilds.length;i++){
str += "<br> " + objChilds(i).xml;
}
dv.innerHTML = str;
}
//テキストノードの追加と削除の結果を表示 function test2(){
var xmlobj=new ActiveXObject("MSXML2.DOMDocument");
xmlobj.async=false;
xmlobj.load("text01.xml");
var objText1 = xmlobj.createTextNode("・・・上のむすこ");
var objChilds = xmlobj.selectSingleNode("//私").childNodes;
objChilds(0).appendChild(objText1);
objChilds(1).text = "・・・上のむすめ";
var objText2 = xmlobj.selectSingleNode("//次男/text()");
objChilds(2).removeChild(objText2);
objChilds(3).text = "";
var str = "私の子供は";
for(i=0;i<objChilds.length;i++){
str += "<br> " + objChilds(i).xml;
}
dv.innerHTML = str;
}
//--></SCRIPT>
</HEAD>
<BODY>
<BUTTON onclick="test1()">元の内容</BUTTON><BR><BR>
<BUTTON onclick="test2()">テキストノードの追加と削除</BUTTON><BR><BR>
<DIV id="dv" style="margin-left:20px;border:1px solid green"> </DIV>
end(04/5/6)