使用带谓语的XPath进行结果过滤

本文介绍了如何在XPath表达式中使用谓语(过滤条件)来精确定位XML文档中的节点。举例说明了如何选取名称为'name'的元素以及以'l'开头的属性。同时,提到了XPath的大小写敏感问题,并提供了不区分大小写搜索的解决方案链接,以及XPath函数的参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 我们在使用xpath表达式的时候,有时候会在表达式里面写谓语(即过滤条件)来定位节点或者节点集,我们写的谓语有时会使用xpath函数才能实现我们相要的过滤条件。

比如:有一个xml文档

  1. <root> 
  2.           <ele> 
  3.                <name  id="1" size="2" /> 
  4.                <name id="2" > 
  5.                <name size="2"/> 
  6.           </ele> 
  7.           <prop> 
  8.                <name id="1" size="2"/> 
  9.                <value length="8" /> 
  10.           </prop> 
  11.           <data> 
  12.                <name id="1" long="en" /> 
  13.                <value/> 
  14.           </data> 
  15.      </root> 

我们要实现:选择所有名称为name的元素,

那么xpath表达式可以写:  //name ,

我们还可以写://*[name()='name']

 

那我们要实现:选取所有以'l'字符开头的属性该怎么做呢?

xpath表达式可以写://@*[starts-with(name(),'l')]  就实现了我们相要的功能。

 

上面的xpath表达式的谓语(即过滤条件)里面都使用了xpath函数。

 

 

另外注意:

XPath对大小写是敏感的。比如你的节点是<Table>,你的xpath写的是//table
则,查找不到你需要的结果。
要使XPath对大小写不敏感:
请参考:
INFO:使用 XPath 通过 MSXML 执行不区分大小写的搜索
http://support.microsoft.com/kb/315719

 

 

参考文章:

xpath入门实例:http://www.w3school.com.cn/xpath/xpath_functions.asp

w3school的xapth教程:http://www.w3school.com.cn/xpath/index.asp

w3school的xpath函数表:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值