Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css selectors 包含短语的多个标记的JSoup选择器_Css Selectors_Jsoup - Fatal编程技术网

Css selectors 包含短语的多个标记的JSoup选择器

Css selectors 包含短语的多个标记的JSoup选择器,css-selectors,jsoup,Css Selectors,Jsoup,在JSoup中,如何编写一个选择器来匹配可以来自多个标记的元素,并包含一个文本短语 例如,我想匹配任何包含“短语”的标题标记 这是可行的,但我想避免重复: :has(h1:contains(短语)、h2:contains(短语)、h3:contains(短语)) 这只匹配包含以下短语的h3: :has(h1、h2、h3:contains(短语)) 很抱歉,我没有在前面详细说明,因为我想让问题保持简单(我需要一个纯选择器解决方案,因为我实际上正在使用jsoup,它“支持类似CSS(或jquery

在JSoup中,如何编写一个选择器来匹配可以来自多个标记的元素,并包含一个文本短语

例如,我想匹配任何包含“短语”的标题标记

这是可行的,但我想避免重复:
:has(h1:contains(短语)、h2:contains(短语)、h3:contains(短语))

这只匹配包含以下短语的
h3
:has(h1、h2、h3:contains(短语))



很抱歉,我没有在前面详细说明,因为我想让问题保持简单(我需要一个纯选择器解决方案,因为我实际上正在使用
jsoup
,它“支持类似CSS(或jquery)的选择器语法来查找匹配的元素”。

一个选项是使用
过滤器()
方法

$(文档).ready(函数(){
$(“h1,h2,h3”).filter(“:contains('keyword')”).addClass('bingo');
});
。宾果{
颜色:#ff0000;
}

此标题不包含短语
此标题不包含短语
此标题不包含短语
此标题包含关键字
此标题包含关键字
此标题包含关键字
此标题包含关键字,但为H4

JSoup不仅支持
select(String query)
方法处理
Document
类型的对象,而且还支持
Elements
类型的对象处理
select(String query)
本身返回
Elements
。因此,您可以将多个select语句串联起来,以过滤掉所需的内容:

Elements hWithText = doc.select("h1,h2,h2").select(":matchesOwn(regEx)");

当然,如果您不需要正则表达式的灵活性,您也可以使用
select(“:contains(whatever)”

您需要纯选择器解决方案还是可以使用
filter()
,如果您发布一个更完整的代码示例会有所帮助。现在看来,它看起来像
$(“h1,h2,h3”)。filter(“:contains(短语)”)
应该可以用。这是我正在研究的一个提琴,其中包括Raul的
。filter
解决方案和其他一些可能有用也可能没用的东西。感谢大家到目前为止的想法。很抱歉,我之前没有指定,我确实需要一个纯选择器解决方案,因为我实际上使用的是“支持CSS(或jquery)”的jsoup类似于选择器语法以查找匹配的元素”@RaulSauco@Zephyr我希望jQuery具有jsoup所具有的
:containsOwn
选择器,它有时会非常有用。