java - 有没有一种有效的方法来测试元素是否与 Jsoup 中的选择器匹配?

标签 java jsoup

是否有一种有效的方法来检查给定元素是否与选择器匹配,例如 jQuery 中的 is() 方法 (http://api.jquery.com/is/)?

我找到了这个解决方案,但我认为它的性能很差:

public static String cleanSelector(String selector) {
    return selector.replaceAll(":link|:active|:visited|:hover|:after|:focus", "");
}

public static boolean elementIs(Element elem, String selector, Element root) {
    Elements elems = root.select(cleanSelector(selector));
    return elems.contains(elem);
}

最佳答案

使用包私有(private)的 QueryParser 类:

Evaluator eval = QueryParser.parse(query);
boolean result = eval.matches(element.ownerDocument(), element);

关于java - 有没有一种有效的方法来测试元素是否与 Jsoup 中的选择器匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16393275/

相关文章:

java - 如何使用 JasperReports 从 Oracle 中的 blob 列查看图像?

java - 我想避免清屏时出现文件太大错误

java - 参数内的泛型类型

java - 如何在 Java 中通过焦点应用程序自动按键

java - 验证 Spring 服务层

javascript - 比较两个 URL 模板的优化算法

java - 与 Firefox 和其他浏览器相比,Jsoup 获得不同的 html

java - 使用 JSoup 仅删除 HTML 标签,而不删除 '<' 和 '>' 标签内的数据

java - jsoup 用于带表格的非结构化 html 页面

java - 使用 jsoup 从表中提取内容