XML教程

浏览3261
更新时间2025-07-30

替换元素节点

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 属性来更改文本节点的文本

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

相关视频

更多

免费

php8,我来也
初级php8,我来也

321756次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382414次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282717次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13413次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时 | 62.5万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时 | 39.7万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时 | 73.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号