节点列表由 getElementsByTagName() 方法和 childNodes 属性返回。

实例

下面的例子使用 XML 文件 books.xml。
函数 loadXMLDoc(),位于外部 JavaScript 中,用于加载 XML 文件。
从第一个 <title> 元素获取文本
本例使用 getElementsByTagName() 方法从 "books.xml" 中的第一个 <title> 元素获取文本。
通过使用 length 属性来循环节点
本例使用节点列表和 length 属性来循环 "books.xml" 中的所有 <title> 元素。
获取元素的属性
本例使用属性列表从 "books.xml" 中的第一个 <title> 元素获取属性。

DOM Node List

当使用诸如 childNodes 或 getElementsByTagName() 属性或方法时,会返回 NodeList 对象。
NodeList 对象表示节点的列表,以 XML 中的相同顺序。
使用从 0 开始的下标来访问节点列表中的节点。
下面的图像表示 "books.xml" 中 <title> 元素的节点列表:

下面的代码片段通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中,并返回 "books.xml" 中 title 元素的一个节点列表:
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");
以上语句执行之后,x 成为一个 NodeList 对象。
下面的代码片段从节点列表 x 中的第一个 <title> 元素中返回文本:
txt=x[0].childNodes[0].nodeValue;
在以上语句执行之后,txt = "Everyday Italian"。
TIY

Node List Length

NodeList 对象会保持自身的更新。如果删除或添加了元素,列表会自动更新。
节点列表的 length 属性是列表中节点的数量。
下面的代码片段通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc,并返回 "books.xml" 中 <title> 元素的数量:
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('title').length;
在上面的语句执行之后,x = 4。
节点列表的长度可用于循环列表中所有的元素。
下面的代码片段使用 length 属性来遍历 <title> 元素的列表:
xmlDoc=loadXMLDoc("books.xml");
//the x variable will hold a node list
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}
输出:
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML

例子解释:

  • 通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc
  • 设置保存所有 title 元素的节点列表的 x 变量
  • 从所有 <title> 元素的文本节点输出值
TIY

DOM Attribute List (Named Node Map)

元素节点的 attributes 属性返回属性节点的列表。
这被称为 Named Node Map,除了方法和属性上的一些差别以为,它与节点列表相似。
属性列表会保持自身的更新。如果删除或添加属性,这个列表会自动更新。
下面的代码片段通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中,并从 "books.xml" 中的第一个 <book> 元素返回属性节点的一个列表:
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;
以上代码执行之后,x.length 等于属性的数量,可使用 x.getNamedItem() 返回属性节点。
下面的代码片段一个 book 的 "category" 属性的值,以及其属性的数量:
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);
输出:
cooking
1

例子解释:

  • 通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  • 把 x 变量设置为第一个 <book> 元素的所有属性的一个列表
  • 从 "category" 属性输出其值
  • 输出属性列表的长度

转载于:https://blog.51cto.com/smilecong/98589

XML DOM Node List相关推荐

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

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

  2. [Perl]利用XML::DOM生成XML文档

    Perl的XML::DOM功能很强大,利用它可以轻易地分析XML文档,也可以建立XML文档. 常用的类包括: XML::DOM::Node:所有类的基类,表示一个XML节点. XML::DOM::Pa ...

  3. XML DOM – 导航节点概述

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

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

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

  5. DOM Node Element Attr 的联系与区别汇总

    node有几个子类型:Element, Text, Attribute, RootElement, Comment, Namespace等 Element是可以有属性和子节点的node. ------ ...

  6. python 解析XML xml.dom

    2019独角兽企业重金招聘Python工程师标准>>> 一 .xml.dom 解析XML的API描述 minidom.parse(filename) 加载读取XML文件 doc.do ...

  7. centos安装 php时 出现 make: *** [ext/dom/node.lo] Error

    为什么80%的码农都做不了架构师?>>>    Linux安装PHP ,make 的时候报错: make: *** [ext/dom/node.lo] Error 1 解决办法: $ ...

  8. python 之模块之 xml.dom.minidom解析xml

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python 之模块之 xml.dom.minidom解析xml #http://www.cnblogs.c ...

  9. html用dom显示xml,dom 编程(html和xml)

    html dom与xml dom关系: 什么是 DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了訪问 HTML 和 XML 文档的标准: "W3C 文档对象模型 (DOM) ...

最新文章

  1. 空间三维散点数据的线性拟合
  2. c#中ReadLine,Read,ReadKey的区别
  3. 机器学习05神经网络--表示
  4. J2EE WEBWORK FRAMEWORK安全隐患
  5. rsync+inotify实现实时同步案例详解
  6. DVWA系列之23 medium级别上传漏洞分析与利用
  7. 基于Cache的Fibonacci数列的计算
  8. 建模是什么,建模定义,及学习方法
  9. 利用Python去除图片水印,真的一点都不难!
  10. 城市引力模型——城市经济联系度制作
  11. python 爬虫 爬取网易严选全网商品价格评论数据
  12. C语言计算5+55+555+5555+55555
  13. DuerOS智能设备激活数突破1亿 小度购物节再掀热潮
  14. 从零开始学习HarmonyOS应用开发——1
  15. [有限元分析] fluent-固体传热分析
  16. 如何在Python中获取图片分辨率?——Python实现获取图片分辨率的代码及详解。
  17. python3 爬虫抓取股市数据
  18. 【Linux】Linux 安装“宝塔”服务
  19. 华为HCIA-Datacom 学习笔记-------第一篇
  20. 开发和设计实现LSTM模型用于家庭用电的多步时间序列预测

热门文章

  1. 中国饲用微生态制剂行业十四五研发方向与专项应用调研报告2022年
  2. 全球及中国模具激光焊接机行业供需分析与投资战略研究报告2021-2027年版
  3. PSAM卡---中国人民银行PSAM卡管理规范.doc
  4. 介绍KeyTool GUI工具2款
  5. Run application
  6. 粤东农批项目座谈会 农业大健康·李喜贵:功能性农业差异化加工
  7. 谋定国家5G战略的基石-工信部韦乐平:经信研究网络领先
  8. layui对json数据的格式要求
  9. javaScript学习之正则表达式初探
  10. 关于java和c语言中,变量重名问题