XML DOM 替换节点

replaceChild() 方法替换指定的节点。

nodeValue 属性替换文本节点中的文本。

替换元素节点

replaceChild() 方法用于替换节点。

以下代码片段替换第一个 <book> 元素:

实例

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement;

// 创建一个 book 元素、title 元素和一个文本节点
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("一本新书");

// 将文本节点添加到 title 节点
newTitle.appendChild(newText);
// 将这个 title 节点添加到 book 节点
newNode.appendChild(newTitle);

y=xmlDoc.getElementsByTagName("book")[0]
// 用新节点替换第一个 book 节点
x.replaceChild(newNode,y);

亲自试一试

例子解释:

  1. books.xml 加载到 xmlDoc
  2. 创建新的元素节点 <book>
  3. 创建新的元素节点 <title>
  4. 创建新的文本节点,其中包含文本 "一本新书"
  5. 将这个新的文本节点追加到新的元素节点 <title>
  6. 将这个新的元素节点 <title> 追加到新的元素节点 <book>
  7. 将第一个 <book> 元素节点替换为新的 <book> 元素节点

替换文本节点中的数据

replaceData() 方法用于替换文本节点中的数据。

replaceData() 方法有三个参数:

  • offset - 从哪里开始替换字符。偏移值从零开始
  • length - 要替换的字符数
  • string - 要插入的字符串

实例

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];

x.replaceData(0,4,"一本新书");

亲自试一试

例子解释:

  1. books.xml 加载到 xmlDoc
  2. 获取第一个 <title> 元素节点的文本节点
  3. 使用 replaceData() 方法将文本节点的前八个字符替换为 "一本新书"

使用 nodeValue 属性代替

使用 nodeValue 属性更容易替换文本节点中的数据。

下面的代码片段将用 "一本新书" 替换第一个 <title> 元素中的文本节点值:

实例

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];

x.nodeValue="一本新书";

亲自试一试

例子解释:

  1. books.xml 加载到 xmlDoc
  2. 获取第一个 <title> 元素节点的文本节点
  3. 使用 nodeValue 属性来更改文本节点的文本

您可以在 改变节点 这一章中阅读有关更改节点值的更多内容。