You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用XPath选取排除Author元素的所有元素?

解决XPath选取除Author外所有元素的问题

嘿,我来帮你搞定这个XPath的问题!先把你的XML片段放在这里方便参考:

<livre id="isbn-0-671-21280-X"> 
  <titre>How to Read a livre</titre> 
  <Subtitre>The Classic Guide to Intelligent Reading</Subtitre> 
  <Author>Mortimer J. Adler</Author> 
  <Author>Charles Van Doren</Author> 
  <Date>1940</Date> 
  <Editeur>Simon &amp; Schuster</Editeur> 
</livre>

要选取livre元素下除Author之外的所有子元素,有几种实用的XPath写法:

方法一:灵活过滤(推荐)

这个写法最灵活,不管后续新增什么子元素,只要不是Author都会被选中:

/livre/*[not(local-name()='Author')]

解释:

  • /livre/*:选中livre节点下的所有直接子元素
  • [not(local-name()='Author')]:通过not()函数过滤掉本地名称(不考虑命名空间)为Author的元素。注意XML是大小写敏感的,这里要和你的元素名严格匹配(你的XML里是大写开头的Author,不能写成小写的author)。

方法二:显式列举元素

如果你的元素列表固定,也可以用竖线(|)来拼接多个元素的路径:

/livre/titre | /livre/Subtitre | /livre/Date | /livre/Editeur

这种写法的缺点是如果后续新增了其他子元素,你需要手动更新XPath路径,不如第一种方法灵活。

用上面的XPath表达式,你就能得到titre、Subtitre、Date、Editeur这几个符合要求的元素啦!

内容的提问来源于stack exchange,提问作者khaliloos ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:23:14