XML文档是被作为节点树来对待的,树的根被称为文档节点或者根节点
在XPath 中,有七种类型的节点:
- 元素
- 属性
- 文本
- 命名空间
- 处理指令
- 注释以及文档节点(或称为根节点)
节点(Node)
在XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
XML文档是被作为节点树来对待的,树的根被称为文档节点或者根节点
看看下面这个 XML 文档:
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright www.ddkk.com -->
<bookstore>
<book>
<title lang="zh-CN">数学之美</title>
<author>吴军</author>
<price>32.90</price>
</book>
</bookstore>
有三种节点
- 文档节点 1 个
<bookstore>
- 元素节点 4 个
<author>吴军</author>
<title>数学之美</title>
<author>吴军</author>
<price>32.90</price>
- 属性节点 1 个
lang="zh-CN"
原子值(Atomic value)
原子值是无父或无子的节点
范例:原子值
- 元素节点的内容是原子值,上例中有四个
吴军
数学之美
32.90
- 属性节点的值也是原子值
"zh-CN"
项(Item)
项(item)是原子值或者节点
节点关系
父节点(Parent Node)
每个元素以及属性都有一个父节点。
在下面的例子中,book 元素是 title、author、price 元素的父节点:
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright www.ddkk.com -->
<book>
<title lang="zh-CN">数学之美</title>
<author>吴军</author>
<price>32.90</price>
</book>
子节点(Children Node)
每一个元素节点可有零个、一个或多个子节点
在下面的例子中,title、author、price 元素都是 book 元素的子节点:
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright www.ddkk.com -->
<book>
<title lang="zh-CN">数学之美</title>
<author>吴军</author>
<price>32.90</price>
</book>
兄弟节点(Sibling Node)
拥有相同的父节点的节点成为兄弟节点
在下面的例子中,title、author、price 元素都是兄弟节点
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright www.ddkk.com -->
<book>
<title lang="zh-CN">数学之美</title>
<author>吴军</author>
<price>32.90</price>
</book>
先辈节点(Ancestor Node)
某节点的父节点、父节点的父节点,以此类推叫做当前节点的先辈节点
在下面的例子中,title 元素的先辈是 book 元素和 bookstore 元素:
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright www.ddkk.com -->
<book>
<title lang="zh-CN">数学之美</title>
<author>吴军</author>
<price>32.90</price>
</book>
后代节点(Descendant Node)
某个节点的子节点,子节点的子节点,以此类推称之为该节点的后代节点
在下面的例子中,bookstore 的后代是 book、title、author、price 元素:
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright www.ddkk.com -->
<bookstore>
<book>
<title lang="zh-CN">数学之美</title>
<author>吴军</author>
<price>32.90</price>
</book>
</bookstore>