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 更改节点”一章中阅读有关更改节点值的更多信息。