通过 DOM,能够访问 XML 文档中的每个节点。

访问节点

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

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

getElementsByTagName() 方法

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

语法

node.getElementsByTagName("tagname");

实例

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

x.getElementsByTagName("title");

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

xmlDoc.getElementsByTagName("title");

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

DOM 节点列表(Node List)

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

下面的代码使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中,然后在变量 x 中存储 <title>节点的一个列表:

xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName("title");

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

y=x[2];

注意:该索引从 0 开始。

在本教程后面的章节中,您将学习更多有关节点列表(Node List)的知识。

DOM 节点列表长度(Node List Length)

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

您可以通过使用 length 属性来遍历节点列表:

实例

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");
for (i=0;i<x.length;i++)
{document.write(x[i].childNodes[0].nodeValue);document.write("");
}

实例解释:

  1. 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 获取所有
  3. 输出每个

节点类型(Node Types)

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

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

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

遍历节点

下面的代码遍历根节点的子节点,同时也是元素节点:

实例

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{if (x[i].nodeType==1){// 执行一次document.write(x[i].nodeName);document.write("");}
}

实例解释:

  1. 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 获取根元素的子节点
  3. 检查每个子节点的节点类型。如果节点类型是 "1",则是元素节点
  4. 如果是元素节点,则输出节点的名称

导航节点的关系

下面的代码使用节点关系导航节点树:

实例

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i<x.length;i++)
{if (y.nodeType==1){// 输出节点名document.write(y.nodeName + "");}y=y.nextSibling;
}
  1. 使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. 获取第一个 book 元素的子节点
  3. 把 "y" 变量设置为第一个 book 元素的第一个子节点
  4. 对于每个子节点(第一个子节点从 "y" 开始),检查节点类型,如果节点类型为 "1",则是元素节点
  5. 如果是元素节点,则输出该节点的名称
  6. 把 "y" 变量设置为下一个同级节点,并再次运行循环

XML DOM – 访问节点概述相关推荐

  1. XML DOM – 导航节点概述

    通过节点间的关系访问节点树中的节点,通常称为导航节点("navigating nodes").可通过使用节点间的关系对节点进行导航. 导航 DOM 节点 通过节点间的关系访问节点树 ...

  2. XML DOM 访问节点

    http://www.w3school.com.cn/xmldom/dom_nodes_access.asp 转载于:https://www.cnblogs.com/yoyov5123/archive ...

  3. XML DOM 解析器概述

    大多数浏览器都内建了供读取和操作 XML 的 XML 解析器.解析器把 XML 转换为 JavaScript 可存取的对象(XML DOM). XML 解析器 XML DOM 包含了遍历 XML 树, ...

  4. python xml解析dom_如何解析python中表示xml.dom.minidom节点的字符串?

    我有一个使用xml.dom.minidom创建的nodes xml.dom.Node对象的集合.通过使用Node对象的toxml()方法将它们转换为字符串,我将它们(单独)存储在数据库中. 问题是,有 ...

  5. html dom 替换节点,XML DOM替换节点

    在本章中,我们将学习XML DOM对象中的替换节点操作.DOM中的所有内容都保存在分层信息单元中,替换节点提供了另一种更新这些指定节点或文本节点的方法. 以下是替换节点的两个方法 - replaceC ...

  6. html 访问节点,HTML DOM 访问节点

    getElementById() 和 getElementsByTagName() getElementById() 和 getElementsByTagName() 这两种方法,可查找整个 HTML ...

  7. XML能否替换HTML,XML DOM

    XML DOM 替换节点 replaceChild() 方法替换指定节点. nodeValue 属性替换文本节点中的文本. 尝试一下 - 实例 下面的实例使用 XML 文件 books.xml. 函数 ...

  8. XML DOM – 属性和方法概述

    属性和方法向 XML DOM 定义了编程接口. 编程接口 DOM 把 XML 模拟为一系列节点对象.可通过 JavaScript 或其他编程语言来访问节点.在本教程中,我们使用 JavaScript. ...

  9. 一些重要的 XML DOM 方法概述

    DOM(Document Object Model 文档对象模型)定义了访问和操作文档的标准方法.在本章中我们将介绍一些其他重要的 XML DOM 方法. 获取元素的值 下面的实例中使用的 XML 文 ...

最新文章

  1. 解决网页ICON图标无法显示的问题
  2. mnist数据集彩色图像_使用MNIST数据集构建多类图像分类模型。
  3. leetcode442. 数组中重复的数据
  4. 2011年三八妇女节搜索引擎LOGO设计欣赏
  5. textbox 和textera 文本框多行后不能拉伸
  6. java终结者,动态语言是否会成为JAVA的终结者?
  7. tf.assign() 更新ref通过给它重新赋值
  8. matlab的annotation,科学网—annotation in matlab Graph - 夏靖的博文
  9. 你有进一步深入理解二分查找吗?
  10. 如何在VS2013中隐藏引用计数?
  11. 三维点云学习(3)1-聚类数学理论
  12. python cursor函数_执行从python返回cursor的db2plsql函数
  13. Android相对属性布局总结
  14. 综合布线系统入门及应用(一)
  15. 锤子手机T2发布会PPT模板
  16. 搜集了一些AIDA64的GPGPU测试结果,现整理成表格共享
  17. PCL_点云数据处理方法概述
  18. word 2016插入空白页页眉的办法
  19. 傲梅轻松克隆系统盘备份
  20. 车辆搜索 -使用triplet loss 训练车辆识别模型

热门文章

  1. 普林斯顿中国籍教授:中国学生是怎样被一步步淘汰掉的?
  2. Linux内核网络栈1.2.13-网卡设备的初始化流程
  3. SPU表管理之保存SPU表数据
  4. 王爽 汇编语言第三版 监测点9.2 监测点9.3 补全编程,利用jcxz指令,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,
  5. maven的setting.xml文件配置信息【仅仅更改了一处】
  6. Python爬虫利器之Beautiful Soup的用法,以及实例!
  7. KNN学习之图像分类与KNN原理
  8. 值得一看的文本检测方法
  9. 用OpenCV搭建活体检测器
  10. 从零开始一起学习SLAM | 为什么要用齐次坐标?