XML 教程

XML 教程 XML 简介 XML 用途 XML 树结构 XML 语法 XML 元素 XML 属性 XML 命名空间 XML Display XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 验证器 XML DTD XML Schema XML 服务器 XML 实例 XML 测验

XML AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用程序 AJAX 实例

XML DOM

DOM 简介 DOM 节点 DOM 访问节点 DOM 节点信息 DOM 节点列表 DOM 节点遍历 DOM 节点导航 DOM 获取节点 DOM 更改节点 DOM 删除节点 DOM 替换节点 DOM 创建节点 DOM 添加节点 DOM 克隆节点 DOM 实例

XPath 教程

XPath 简介 XPath 节点 XPath 语法 XPath 轴(Axes) XPath 运算符 XPath 实例

XSLT 教程

XSLT 简介 XSL 语言 XSLT 转换 XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT 客户端 XSLT 服务端 XSLT 编辑 XML XSLT 实例

XQuery 教程

XQuery 简介 XQuery 实例 XQuery FLWOR 表达式 XQuery FLWOR + HTML XQuery 术语 XQuery 语法 XQuery 添加元素和属性 XQuery 选择和过滤 XQuery 函数

XML DTD

DTD 简介 DTD 构建模块 DTD 元素 DTD 属性 DTD 元素 vs. 属性 DTD 实体 DTD 实例

XSD Schema

XSD 简介 XSD How To XSD <schema> XSD 元素 XSD 属性 XSD 限制

XSD Complex

XSD 复杂元素 XSD 空元素 XSD 仅限元素 XSD 纯文本元素 XSD 混合 XSD 指示器 XSD <any> XSD <anyAttribute> XSD 替换 XSD 实例

XSD 数据类型

XSD 字符串 XSD 日期 XSD 数值 XSD 杂项 XSD 参考手册

Web Services

XML Services 简介 XML WSDL XML SOAP XML RDF XML RSS

参考手册

DOM 节点类型 DOM 节点 DOM NodeList DOM NamedNodeMap DOM 文档 DOM 元素 DOM 属性 DOM 文本 DOM CDATA DOM 注释 DOM XMLHttpRequest DOM 解析器 XSLT 元素 XSLT/XPath 函数


XML DOM 节点

根据XML DOM,XML文档中的所有内容都是一个节点:

  • 整个文档是一个文档节点
  • 每个XML元素都是一个元素节点
  • XML元素中的文本是文本节点
  • 每个属性都是一个属性节点
  • 注释是注释节点

DOM 实例

查看以下XML文件 (books.xml):

×

Header

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title lang="en">XQuery Kick Start</title>
    <author>James McGovern</author>
    <author>Per Bothner</author>
    <author>Kurt Cagle</author>
    <author>James Linn</author>
    <author>Vaidyanathan Nagarajan</author>
    <year>2003</year>
    <price>49.99</price>
  </book>
  <book category="web" cover="paperback">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

上面的XML中的根节点名为 <bookstore>.

文档中的所有其他节点都包含在 <bookstore>中.

根节点<bookstore>包含4个<book>节点.

第一个<book>节点包含子节点:<title>, <author>, <year>, and <price>.

子节点每个包含一个文本节点, "Everyday Italian", "Giada De Laurentiis", "2005", 和 "30.00".



文本始终存储在文本节点中

DOM处理中的一个常见错误是期望元素节点包含文本。

但是,元素节点的文本存储在文本节点中。

在本例中:<year>2005</year>,元素节点<year> 包含一个值为"2005"的文本节点.

"2005" 不是 <year>元素的值!


XML DOM 节点树

XML DOM 将XML文档视为树结构。树结构称为节点树。

所有节点都可以通过树访问。可以修改或删除它们的内容,也可以创建新元素。

节点树显示节点集以及它们之间的连接。树从根节点开始,分支到树最低级别的文本节点:

DOM node tree

上图表示XML文件 books.xml.


节点父节点、子节点和同级节点

节点树中的节点彼此具有层次关系。

术语父、子和兄弟用于描述关系。父节点有子节点。同级的孩子被称为兄弟姐妹。

  • 在节点树中,顶部节点称为根节点
  • 除根节点外,每个节点都只有一个父节点
  • 一个节点可以有任意数量的子节点
  • 叶子是没有子节点的节点
  • 同级节点是具有相同父节点的节点

下图说明了节点树的一部分以及节点之间的关系:

Node tree

因为XML数据是以树的形式构造的,所以可以在不知道树的确切结构和其中包含的数据类型的情况下遍历它。

在本教程后面的一章中,您将了解有关遍历节点树的更多信息。


First Child - Last Child

请看以下XML片段:

<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
</bookstore>

在上面的XML中,<title>元素是<book>元素的第一个子元素,<price>元素是<book>元素的最后一个子元素。

此外,<book>元素是e <title>, <author>, <year>, 和 <price>元素的父节点。