removeNamedItem()メソッド
・NamedNodeMapオブジェクトから引数の属性を削除する
・戻り値は削除されたattributeオブジェクト。存在しない場合nullを返す。
・(書式)attributeオブジェクト= NamedNodeMapオブジェクト.removeNamedItem("属性名")
setNamedItem()メソッド
・NamedNodeMapオブジェクトに属性ノードを追加する
・(書式)attributeオブジェクト=NamedNodeMapオブジェクト.setNamedItem(Attributeノード)
・戻り値は追加された属性ノード。
・同名の属性ノードが既にある場合は置き換えられる(名前は同じだが値が入れ替わる)。置き換わった属性ノードが戻り値になる。
[サンプルHTML文書を表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<root>
<title>属性ノードの追加と削除2</title>
<data>
<test year="2005年" month="04月">TEST</test>
</data>
</root>
HTMLソース
<SCRIPT language="JavaScript"><!--
function Test(){
var xmlobj=new ActiveXObject("MSXML2.DOMDocument");
xmlobj.async=false;
xmlobj.load("attri04.xml");
//元の内容
alert("元のXML文書は\n\n"+xmlobj.xml);
sp1.innerText = ViewAttri(xmlobj.selectSingleNode("//test").attributes);
//"year"属性の削除
xmlobj.selectSingleNode("//test").attributes.removeNamedItem("year");
alert("year属性削除後のXML文書は\n\n"+xmlobj.xml);
sp2.innerText = ViewAttri(xmlobj.selectSingleNode("//test").attributes);
//"day"属性と"week"属性を追加
var addAttri = xmlobj.createAttribute("day");
addAttri.nodeValue = "22日";
xmlobj.selectSingleNode("//test").attributes.setNamedItem(addAttri);
var addAttri = xmlobj.createAttribute("week");
addAttri.nodeValue = "金曜日";
xmlobj.selectSingleNode("//test").attributes.setNamedItem(addAttri);
alert("day/week属性追加後のXML文書は\n\n"+xmlobj.xml);
sp3.innerText = ViewAttri(xmlobj.selectSingleNode("//test").attributes);
}
function ViewAttri(atts){
var str = "";
for(i=0;i<atts.length;i++){
str += " "+atts[i].value;
}
return str;
}
//--></SCRIPT>
</HEAD>
<BODY>
<button onclick="Test()">属性を削除/追加</button>
<div>元の属性は:<span id="sp1"></span></div>
<div>削除後の属性は:<span id="sp2"></span></div>
<div>追加後の属性は:<span id="sp3"></span></div>
end(05/4/22)