admin 管理员组

文章数量: 1184232


2024年3月10日发(作者:属性同好会在线观看影院)

XML SAX 轴

上下文节点是定位路径表达式所基于的节点。轴指定当前定位步骤和上下文节

点选择的节点间的树关系。在XML文档中搜索是从XPath树结构的一个上下文节

点开始的,所以搜索XPath树结构与该上下文节点有关。

每一个轴都有一个基本节点类型。如果一个轴能够包含元素,那么轴的节点类

型就是元素。其它情况下,轴的节点类型就是轴能够包含的节点的类型。本节使用

文档作为本节XML文档实例,文档内容如下所示:

XML入门指南

清华大学出版社

XPath入门指南

电子机械出版社

XSL入门指南

清华大学出版社

在该文档所形成的树结构中,book元素节点包含子元素节点name和publisher,

如果一个返回第一个子元素的XPath表达式以book节点作为上下文节点,那么该

表达式返回的节点数据为book元素的子元素name节点。

轴用来指定搜索节点的范围以,该范围以上下文节点作为基准点。轴还规定节

点在节点集中的顺序。轴的方向可以是向前(forward)或者反向(reverse),向前的轴以

文档顺序在节点间移动,而反向的轴则以反文档顺序在节点间移动。根据轴的方向

把轴分为前向轴和反向轴,示意图如图9-3所示。

parent、ancestor、ancestor-or-self、preceding和preceding-sibling轴是反向轴

反向轴

节点A

节点B

节点C

节点D

节点E

反向轴区域

上下文节点

节点F

节点G

节点H

前向轴区域

前向轴

child、descendant、descendant-or-self、following和following-sibling轴是前向轴

图9-3 轴分类示意图

在图中节点F为上下文节点,该节点作为虚拟坐标系的坐标原点,坐标原点下

方为前向轴方向,坐标原点的上方为反向轴方向。有关13个XPath轴的概述如表9

-2所示。

表9-2 XPath轴概述

名称

self

parent

child

ancestor

ancestor-or-self

descendant

descendant-or-self

following

following-sibling

preceding

preceding-sibling

attribute

namespace

说明

选取当前节点

选取当前节点的父节点

选取当前节点的所有子元素

选取当前节点的所有先辈(父、祖父等)

选取当前节点的所有先辈(父、祖父等)以及当前节点本身

选取当前节点的所有后代元素(子、孙等)

选取当前节点的所有后代元素(子、孙等)以及当前节点本身

选取文档中当前节点的结束标签之后的所有节点

当前节点后面的同胞节点

选取当前节点的开始标签之前的所有节点

选取当前节点之前的所有同胞节点

选取当前节点的所有属性

选取当前节点的所有命名空间节点

这13个轴分别代表13种节点集合,每种节点集合是符合某种规则的节点类型

集合,集合中的节点对应于轴可以选择的节点类型。比如,对于属性轴,主要节点

类型是attribute;对于命名空间轴,主要节点类型是namespace;而其他轴的主要节

点类型是element。

使用XPath轴对文件进行转换的XSL文件内容如下所示:

xmlns:xsl="/1999/XSL/Transform">

<xsl:value-of select="books/ attribute::title"/>

上下文节点的ID:

前向轴child下第一个book节点的name节点:

select="child::name"/>

反向轴ancestor包含的节点:

前向轴following包含的节点:

轴attribute:

在上述文件中,使用四个轴确定节点匹配方向并显示符合条件的节点内容。在

浏览器中打开文件,如图9-4所示。

图9-4 轴实例

某些XPath轴具有简写形式,如表9-3所示。

表9-3 XPath轴简写形式

完整形式 简写形式及说明

child::

attribute::

/descendant-or-self::node()/

self::node()

parent::node()

如果没有提供轴心,在默认情况下就是用这个定位路径。

“/child::node()”等效于“/node()”

简写为at符(@)

简写为两个斜杠(//)。

简写为一个点号(.)

简写为两个点号(..)

例如上面实例中的“”可以简写为“

lue-of select="name"/>”;“”可以简写为“

alue-of select="@id"/>”。


本文标签: 节点 文档 元素 文件 形式