- 你所在位置:首页 〉VS.net〉XML〉XML基础教程〉XML基础教程:XML DOM 添加节点
- XML基础教程:XML DOM 添加节点
- 作者:佚名 文章来源:ttp://www.w3school.com.cn 发布日期:2008-03-06 浏览次数:651
-
- 打印这篇文章
-
XML DOM 添加节点
实例
在下面的例子中,我们将使用XML文件books.xml,以及JavaScript函数loadXMLDoc()。
- 向一个节点列表的末尾添加一个节点
- 本例使用createElement()来创建一个新的元素,并使用appendChild()将此节点添加到一个节点列表。
- 在特定的节点之前添加节点
- 本例使用createElement()来创建一个新的元素,并使用insertBefore()将此节点插入到特定的节点之前
- 设置新的属性和属性值
- 本例使用setAttribute()方法来设置新的属性/属性值。
- 向一个文本节点插入数据
- 本例使用insertData()向一个文本节点插入数据。
向一个节点列表的末尾添加一个节点
appendChild()方法可用来在某个特定的节点之后添加一个节点。
此方法在被添加节点的位置不很重要的情况下是很有用的。
下面的代码片段可创建一个元素(< edition>),并可将此元素添加到每个< book>元素的最后一个子元素之后:
xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.getElementsByTagName('book'); var newel,newtext for (i=0;i< x.length;i++) { newel=xmlDoc.createElement('edition'); newtext=xmlDoc.createTextNode('First'); newel.appendChild(newtext); x[i].appendChild(newel); }在某个特定的节点之前插入节点
insertBefore()可用来在某个特定的节点之前插入一个节点。
此方法在被添加节点的位置很重要的情况下是很有用的。
下面的代码片段可创建一个新的< book>元素,并把它插到最后一个< book>元素之前:
//check if last child node is an element node function get_lastchild(n) { var x=n.lastChild; while (x.nodeType!=1) { x=x.previousSibling; } return x; } xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.documentElement; var newNode=xmlDoc.createElement("book"); var newTitle=xmlDoc.createElement("title"); var newText=xmlDoc.createTextNode("A Notebook"); newTitle.appendChild(newText); newNode.appendChild(newTitle); x.insertBefore(newNode,get_lastchild(x));注释:Internet Explorer会忽略节点之间产生的空白文本节点(例如换行字符),而Mozilla不会这样。因此,在上面的例子中,get_lastchild()函数会检查参数的最后一个子节点的节点类型。
元素节点的节点类型是1,因此假如参数中节点的最末子节点不是元素节点,那么它就会移至上一个节点,并检查此节点是否为元素节点。这个过程会持续到最后一个子节点被找到为止。通过这个办法,我们就可以在Internet Explorer 和 Mozilla中得到正确的结果了。
设置新的属性和属性值
setAttribute()方法可被用来改变已有属性的值,或者为某个元素创建新的属性/属性值。
下面的代码片段可向每个< book>元素添加新的属性/属性值:
xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.getElementsByTagName("book"); for(i=0;i< x.length;i++) { x.item(i).setAttribute("edition","FIRST"); }注释:假如"edition"属性已存在,setAttribute()方法将重写此属性的值。
向某个文本节点插入数据
insertData()方法可用来向某个文本节点插入数据。
insertData()方法有两个参数:
- offset - 从何处开始插入字符。偏移量的起始值是0
- string - 要插入的字符串
下面的代码片段可向已载入的XML的第一个< title>元素的文本节点添加"Easy":
xmlDoc=loadXMLDoc("books.xml"); var x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.insertData(0,"Easy "); - 打印这篇文章
- 与本文主题相关的文章
-
- 返回首页
