使用XPath按多个值过滤

cman77

我试图按公司名称过滤Jobs的XML文档。

我可以使用以下方法拉出与特定公司名称匹配的所有项目:

doc.xpath("/source/job[company[text() = 'BigCorp' or text() = 'MegaCorp']]")

我无法做相反的事情,并使用以下方法将这些值排除在外:

doc.xpath("/source/job[company[text() != 'Hodes' or text() != 'Scurri']]")

我要去哪里错了?有没有办法提供逗号分隔的值列表?

丹尼尔·海利(Daniel Haley)

尝试将更or改为and

doc.xpath("/source/job[company[text() != 'Hodes' and text() != 'Scurri']]")

如果使用or,它将始终返回作业。

例如,它将返回公司的工作,Hodes因为这text() != 'Scurri'是正确的(反之亦然)。


关于以下评论:

所以normalize-space()做到了!doc.xpath("/source/job[company[normalize-space() != 'Hodes' and normalize-space() != 'Scurri']]")不知道为什么?

normalize-space()起作用的原因是因为text()也将返回空格。

例如,如果您有一个类似的元素:

<company>
 Hodes
</company>

或者:

<company> Hodes </company>

text()将等于“ _Hodes_”。(我用替换了空格,_以使它们更易于查看。)

由于存在空格,因此“ _Hodes_”不等于“ Hodes”。

使用normalize-space()将删除前导/尾随空格,并用单个空格替换多个空格。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用.includes按多个值过滤?

来自分类Dev

按多个值过滤字典

来自分类Dev

按多个值过滤集合列

来自分类Dev

使用熊猫过滤多个值

来自分类Dev

如何通过 XPath 按 XML 中的特定值进行过滤

来自分类Dev

使用Ruby按值过滤JSON数组

来自分类Dev

使用purrr按向量中的值过滤

来自分类Dev

使用NSPredicate按值过滤NSDictionary

来自分类Dev

使用MongoAlchemy按内部列表的值过滤

来自分类Dev

Xpath过滤器字符串中的多个值

来自分类Dev

按特定值%in%一或多个指定列过滤行

来自分类Dev

按多个列值过滤熊猫数据框行

来自分类Dev

按具有多个值的其他对象过滤对象

来自分类Dev

同时按多个数据值过滤元素

来自分类Dev

XPath使用starts_with()评估多个值

来自分类Dev

代码以使用多个条件过滤值

来自分类Dev

XPath查询按日期过滤

来自分类Dev

在PostgreSQL中使用XPath过滤多个XML节点

来自分类Dev

使用NEST(ElasticSearch)按多个值搜索

来自分类Dev

使用多个过滤器值过滤数据

来自分类Dev

灰烬过滤器-使用多个值进行过滤

来自分类Dev

灰烬过滤器-使用多个值进行过滤

来自分类Dev

按值选择XPath

来自分类Dev

按值过滤ConcurrentHashMap

来自分类Dev

按值过滤列表

来自分类Dev

如何使用OR逻辑按多个列过滤jQuery Tablesorter

来自分类Dev

使用多个选项按字段过滤查询集

来自分类Dev

SPARK SQL:如何按多个列过滤记录并使用 groupBy

来自分类Dev

我如何按多个值过滤一列(严格过滤器)?