筛选器和筛选模式——XPath语法详解系列(四)

  • 筛选器和筛选模式

通过将筛选子句 [pattern] 添加到集合中,可以对任何集合应用约束和分支。筛选器类似于 SQL WHERE 子句。筛选器中包含的模式称为“筛选模式”。筛选模式计算为布尔值,对集合中的每个元素进行测试。集合中所有未通过筛选模式测试的元素将从结果集合中省 略。

 

为了方便起见,如果集合在筛选器内,若集合包含任何成员,则生成布尔值 TRUE,若集合为空,则生成 FALSE。author/degree 之类的表达式意味着,如果存在包含名为 <degree> 的子元素的 <author> 元素,集合到布尔值的转换函数将计算为 TRUE。

 

注意,在表达式的给定级别可以出现任意数目的筛选器。不允许使用空筛选器。

 

筛选器总是针对上下文进行计算。也就是说,表达式 book[author] 意味着,对每个找到的 <book> 元素测试是否包含 <author> 子元素。同样,book[author = 'Bob'] 意味着,对每个找到的 <book> 元素测试是否包含值为 Bob<author> 子元素。还可以使用句点 (. ) 字符检查上下文的值 。例如,book[. = 'Trenton'] 意味着,对当前上下文中找到的每一本书,测试值是否为 Trenton

表达式 引用

book[excerpt]

至少包含一个 <excerpt> 元素的所有 <book> 元素。

book[excerpt]/title

至少包含一个 <excerpt> 元素的 <book> 元素内的所有 <title> 元素。

book[excerpt]/author[degree]

至少包含一个 <degree> 元素并且在至少包含一个 <excerpt> 元素的 <book> 元素内的所有 <author> 元素。

book[author/degree]

至少包含一个 <author> 元素并且该元素至少包含一个 <degree> 子元素的 <book> 所有元素。

book[excerpt][title]

至少包含一个 <excerpt> 元素以及至少包含一个 <title> 元素的 <book> 所有元素。注:这里的[excerpt][title]都是能前面book元素进行约束的, [title]不是对excerpt进行约束的。如果是 [excerpt [title] ], [title]则是对上下文节点excerpt进行约束的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值