DOM 节点

创建于 2024-12-03 / 24
字体: [默认] [大] [更大]

根据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>元素的父节点。



0 人点赞过