DOM 替换节点
-
定义和使用
replaceChild() 方法用于替换节点。以下代码片段替换了第一个<book>元素:此代码更改第一个<title>元素的文本节点值:
尝试一下xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement; //创建一个book元素,title元素和一个text节点 newNode=xmlDoc.createElement("book"); newTitle=xmlDoc.createElement("title"); newText=xmlDoc.createTextNode("A Notebook"); //将文本节点添加到标题节点, newTitle.appendChild(newText); //将title节点添加到book节点 newNode.appendChild(newTitle); y=xmlDoc.getElementsByTagName("book")[0] //用新节点替换第一本书节点 x.replaceChild(newNode,y);
示例说明:- 假设 books.xml 已加载到 xmlDoc 中。
- 创建一个新的元素节点<book>
- 创建一个新的元素节点<title>
- 用文本“ A Notebook”创建一个新的文本节点
- 将新的文本节点附加到新的元素节点<title>
- 将新元素节点<title>追加到新元素节点<book>
- 将第一个<book>元素节点替换为新的<book>元素节点
-
替换文本节点中的数据
replaceData() 方法用于替换文本节点中的数据。replaceData() 方法具有三个参数:- offset-从何处开始替换字符。 偏移值从零开始
- 长度-替换多少个字符
- string-要插入的字符串
尝试一下xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.replaceData(0,8,"Easy");
示例说明:- 假设 books.xml 已加载到 xmlDoc 中。
- 获取第一个<title>元素节点的文本节点
- 使用 replaceData 方法将文本节点中的前八个字符替换为 “Easy”
-
使用nodeValue属性代替
使用 nodeValue 属性更容易替换文本节点中的数据。以下代码片段将第一个<title>元素中的文本节点值替换为 “Easy Italian”:
尝试一下xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.nodeValue="Easy Italian";
示例说明:- 假设 books.xml 已加载到 xmlDoc 中。
- 获取第一个<title>元素节点的文本节点
- 使用 nodeValue 属性更改文本节点的文本
您可以在“Dom 更改节点”一章中阅读有关更改节点值的更多信息。