<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>