位置路径示例——XPath语法详解系列(十二)

  • 位置路径示例

下面的示例说明位置路径的用法。


路径 说明

child::node()

选择上下文节点的所有子级,无论属于哪种节点类型。

attribute::name

选择上下文节点的 name 属性。

attribute::*

选择上下文节点的所有属性。

descendant::para

选择上下文节点的 <para> 元素子代。

ancestor::div

选择上下文节点的所有 <div> 上级。

ancestor-or-self::div

选择上下文节点的 <div> 上级,如果上下文节点是 <div> 元素,还将选择该上下文节点。

descendant-or-self::para

选择上下文节点的 <para> 元素子代,如果上下文节点是 <para> 元素,还将选择该上下文节点。

self::para

如果上下文节点是 <para> 元素,则选择该上下文节点;否则,不选择任何内容。

child::chapter/descendant::para

选择上下文节点的 <chapter> 元素子级的 <para> 元素子代。

child::*/child::para

选择上下文节点的所有 <para> 孙级。

/

选择文档根(总是文档元素的父级)。

/descendant::para

选择与上下文节点相同的文档中的所有 <para> 元素。

/descendant::olist/child::item

选择所有具有 <olist> 父级以及与上下文节点处于同一文档的 <item> 元素。

child::para[position()=1]

选择上下文节点的第一个 <para> 子级。

child::para[position()=last()] 

选择上下文节点的最后一个 <para> 子级。

child::para[position()=last()-1] 

选择上下文节点的倒数第二个 <para> 子级。

child::para[position()>1]

选择上下文节点的所有 <para> 子级,上下文节点的第一个 <para> 子级除外。

/descendant::figure[position()=42] 

选择文档中的第 42 个 <figure> 元素。

/child::doc/child::chapter[position()=5]/child::section[position()=2] 

选择 <doc> 文档元素的第 5 个 <chapter> 元素中包含的第二个 <section> 元素。

child::para[attribute::type="warning"] 

选择上下文节点中所有 type 属性值为 "warning"<para> 子级。

child::para[attribute::type="warning"][position()=5]

选择上下文节点中 type 属性值为 "warning". 的第 5 个 <para> 子级,注:连续的谓词为与的关系,都是针对para元素。

child::para[position()=5][attribute::type="warning"] 

选择上下文节点的第 5 个 <para> 子级(如果该子级的 type 属性值为 "warning". )。

child::chapter[child::title="Introduction"] 

选择上下文节点中包含一个或多个字符串值等于“Introduction ”的 <title> 子级的 <chapter> 子级。

child::chapter[child::title] 

选择上下文节点中包含一个或多个 <title> 子级的 <chapter> 子级。

child::*[self::chapter or self::appendix] 

选择上下文节点的 <chapter><appendix> 子级。

child::*[self::chapter or self::appendix][position()=last()] 

选择上下文节点的最后一个 <chapter><appendix> 子级。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值