XML教程

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

访问节点

您可以通过三种方式来访问节点:

  • 通过使用 getElementsByTagName() 方法
  • 通过循环(遍历)节点树
  • 通过利用节点的关系在节点树中导航

getElementsByTagName() 方法

getElementsByTagName() 返回拥有指定标签名的所有元素。

语法

node.getElementsByTagName("tagname");

实例

下例返回 x 元素下的所有 <title> 元素:

x.getElementsByTagName("title");

请注意,上面的例子仅返回 x 节点下的 <title> 元素。如需返回 XML 文档中的所有 <title> 元素,请使用:

xmlDoc.getElementsByTagName("title");

在这里,xmlDoc 就是文档本身(文档节点)。

DOM 节点列表

getElementsByTagName() 方法返回节点列表(node list)。节点列表是节点的数组。

x = xmlDoc.getElementsByTagName("title");

可通过索引号访问 x 中的 <title> 元素。如需访问第三个 <title>,您可以这样写:

y = x[2];

注释:索引从 0 开始。

运行实例 »

点击 "运行实例" 按钮查看在线实例

DOM 节点列表长度

length 属性定义节点列表的长度(节点数)。

您能够使用 length 属性来循环遍历节点列表:

实例

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // 此处可以写处理每个节点的代码
  }
运行实例 »

点击 "运行实例" 按钮查看在线实例

节点类型

XML 文档的 documentElement 属性是根节点。

节点的 nodeName 属性是节点的名称。

节点的 nodeType 属性是节点的类型。

您将在本教程的下一章中学到有关节点属性的更多内容。

运行实例 »

点击 "运行实例" 按钮查看在线实例

遍历节点

以下代码循环遍历根节点的子节点(同时也是元素节点):

实例

txt = "";
x = xmlDoc.documentElement.childNodes;

for (i = 0; i <x.length; i++) {
  // Process only element nodes (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

例子解释:

  1. 假设您已将 "books.xml" 加载到 xmlDoc
  2. 获取根元素(xmlDoc)的子节点
  3. 检查每个子节点的节点类型。如果节点类型为 "1",则是元素节点
  4. 如果是元素节点,则输出节点名称

导航节点关系

下面的代码通过利用节点的关系在节点树中进行导航:

实例

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;

txt = "";
for (i = 0; i <xlen; i++) {
  // 只处理元素节点(类型 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

例子解释:

  1. 假设您已将 "books.xml" 加载到 xmlDoc
  2. 获取第一个 book 元素的子节点
  3. 将 "y" 变量设置为第一个 book 元素的第一个子节点
  4. 对于每个子节点(从第一个子节点 "y" 开始):
  5. 检查每个子节点的节点类型。如果节点类型为 "1",则它是元素节点
  6. 如果是元素节点,则输出该节点的名称
  7. 将 "y" 变量设置为下一个同级节点,并再次运行循环

相关视频

更多

免费

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

34万次学习

收藏

免费

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

39.6万次学习

收藏

免费

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

31万次学习

收藏

精品课程

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

共29课时

65万人学习

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

共25课时

41.3万人学习

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

共43课时

76.8万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.2万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.4万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.3万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.5万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载