<html> <head> <title>创建与添加节点</title> <meta http-equiv="content-type" content="text/html;charset=gb2312"> <script language="javascript" type="text/javascript"> <!-- //加载XML文件的函数 function loadXML(xmlFile) { var _xmlDoc = null; if(window.ActiveXObject) { _xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); } else { try { _xmlDoc = document.implementation.createDocument("","",null); } catch(ex) { alert(ex.message); _xmlDoc = null; } } if (_xmlDoc!=null) { _xmlDoc.async = false; try { _xmlDoc.load(xmlFile); } catch(ex) { alert(ex.message); _xmlDoc = null; } } return _xmlDoc; } //遍历XML文档 function outText(_xmlDoc) { var _rootNode = _xmlDoc.documentElement; var _itemNodes = _rootNode.childNodes; for (i=0;i<_itemNodes.length;i++) { document.write("<br>"); var _attrNode = _itemNodes[i].getAttributeNode("id"); if (_attrNode!=null) { document.write("编号:",_attrNode.value,"<br>"); } else { document.write("编号:无<br>"); } var _childs = _itemNodes[i].childNodes; for (j=0;j<_childs.length;j++) { if (_childs[j].nodeType==1) { document.write(_childs[j].nodeName,":",_childs[j].firstChild.nodeValue,"<br>"); } else if (_childs[j].nodeType==8) { document.write("注释:",_childs[j].nodeValue,"<br>"); } } } } //加载XML文件 var xmlDoc = loadXML("sample.xml"); if (xmlDoc!=null) { document.write("添加节点前的XML文档内容。"); outText(xmlDoc); //创建元素节点: var itemNode = xmlDoc.createElement("Item"); var elePoemNode = xmlDoc.createElement("诗名"); var eleAuthorNode = xmlDoc.createElement("作者"); var eleContentNode = xmlDoc.createElement("内容"); //创建属性节点: var attrNode = xmlDoc.createAttribute("id"); //设置属性节点的值 attrNode.nodeValue = "003"; //在<作者>节点上添加属性 eleAuthorNode.setAttribute("字","子厚"); //创建文本节点: var textPoemNode = xmlDoc.createTextNode("江雪"); var textAuthorNode = xmlDoc.createTextNode("柳宗元"); var textContentNode = xmlDoc.createTextNode("千山鸟飞绝,万径人踪灭。孤舟蓑笠翁,独钓寒江雪。"); //创建注释节点: var commentNode = xmlDoc.createComment("这是柳宗元被贬到永州之后写的诗,借寒江独钓的渔翁,抒发自己孤独郁闷的心情。"); //将属性节点附加到<Item>节点上 itemNode.setAttributeNode(attrNode); //将文本节点附加到元素节点上 elePoemNode.appendChild(textPoemNode); eleAuthorNode.appendChild(textAuthorNode); eleContentNode.appendChild(textContentNode); //将<诗名>、<作者>、<内容>和注释节点附加到<Item>节点上 itemNode.appendChild(elePoemNode); itemNode.appendChild(eleAuthorNode); itemNode.appendChild(commentNode); itemNode.appendChild(eleContentNode); //将<Item>节点添加到根节点上 xmlDoc.documentElement.appendChild(itemNode); document.write("<br>添加节点后的XML文档内容。"); outText(xmlDoc); //输出使用setAttributeNode()方法添加的属性 var AuthorNode = xmlDoc.documentElement.childNodes[2].childNodes[1]; document.write(AuthorNode.firstChild.nodeValue,",字:",AuthorNode.getAttribute("字")); } else { alert("您的浏览不支持XML解析器或加载XML文件时出错。"); } --> </script> </head> <body> </body> </html>
|