admin 管理员组文章数量: 1184232
2024年3月10日发(作者:属性同好会在线观看影院)
XML SAX 轴
上下文节点是定位路径表达式所基于的节点。轴指定当前定位步骤和上下文节
点选择的节点间的树关系。在XML文档中搜索是从XPath树结构的一个上下文节
点开始的,所以搜索XPath树结构与该上下文节点有关。
每一个轴都有一个基本节点类型。如果一个轴能够包含元素,那么轴的节点类
型就是元素。其它情况下,轴的节点类型就是轴能够包含的节点的类型。本节使用
文档作为本节XML文档实例,文档内容如下所示:
在该文档所形成的树结构中,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">
上下文节点的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"/>”。
版权声明:本文标题:XML SAX 轴 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710019190a553901.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论