最新的Web开发教程
 

XML DOM添加节点


试一试 - 示例

下面的例子使用XML文件的Books.xml

添加一个节点的最后一个子节点之后
本例使用appendChild()一个子节点添加到现有的节点。

指定的子节点之前添加一个节点
本例使用insertBefore()指定的子节点之前插入一个节点。

添加一个新的属性
本例使用setAttribute()方法来添加一个新的属性。

将数据添加到文本节点
本例使用insertData()将数据插入到现有的文本节点。

×


添加一个节点- appendChild()

所述appendChild()方法增加了一个子节点到现有节点。

新节点添加(appended)任何现有的子节点之后。

Note:使用insertBefore()如果节点的位置是重要的。

这段代码创建了一个元素(<edition>)和第一的最后一个孩子后,将其添加<book>元素:

newEle = xmlDoc.createElement("edition");

xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
试一试»

例子解释:

  1. 假设“ 的books.xml ”载入到xmlDoc中
  2. 创建一个新节点<edition>
  3. 追加节点到第<book>元素

此代码片段确实与上述相同,但新的元素添加一个值:

newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);

xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
试一试»

例子解释:

  1. 假设“ 的books.xml ”载入到xmlDoc中
  2. 创建一个新节点<edition>
  3. 创建一个新的文本节点"first"
  4. 追加文本节点到<edition>节点
  5. 追加<addition>节点到<book>元素

插入一个节点- insertBefore()

insertBefore()方法插入指定的子节点之前的节点。

当所添加的节点的位置是很重要的这种方法是有用的:

newNode = xmlDoc.createElement("book");

x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];

x.insertBefore(newNode,y);
试一试»

例子解释:

  1. 假设“ 的books.xml ”载入到xmlDoc中
  2. 创建一个新的元素节点<book>
  3. 插入新的节点,在过去的前<book>元素节点

如果第二个参数insertBefore()为null,则新节点将最后一个现有的子节点之后添加。

x.insertBefore(newNode,null)和x.appendChild(newNode)都将追加一个新的子节点为x。


添加新属性

setAttribute()方法设置属性的值。

xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
试一试»

例子解释:

  1. 假设“ 的books.xml ”已经加载到xmlDoc中
  2. 该属性的值设置为"edition" ,以"first"为先<book>元素

有没有一种方法称为附加Attribute()
setAttribute()将创建一个新的属性,如果属性不存在。

Note:如果属性已存在,则setAttribute()方法将覆盖现有的值。


添加文本到文本节点- insertData()

insertData()方法将数据插入已有的文本节点。

insertData()方法有两个参数:

  • offset -在何处开始插入字符(starts at zero)
  • 字符串 - 要插入的字符串

下面的代码片段将增加"Easy"到第一个的文本节点<title>加载的XML元素:

xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");
试一试»