【问题标题】:Using wildcards with jsoup Selector在 jsoup 选择器中使用通配符
【发布时间】:2013-09-15 01:34:24
【问题描述】:

我正在浏览不同的网页以使用 jsoup 进行处理,并且我要访问的页面中的部分以这种方式格式化:

<section class="featured_name_tabs options9">

因此,通常情况下,要做到这一点,我只需执行以下操作:

document.select("section.featured_name_tabs.options9")

但是,我注意到类属性末尾的数字实际上发生了变化,所以我现在需要的是(末尾有一个星号):

document.select("section.featured_name_tabs.options*")

^ 但显然这不起作用。既然我发现字符串的结尾并不总是相同的,我该如何选择该元素?谢谢!

【问题讨论】:

    标签: java html dom css-selectors jsoup


    【解决方案1】:

    您不能直接使用选择器语法来执行此操作。您可以通过查看selector documentation(它支持属性和文本但不支持类的前缀/后缀/中缀/正则表达式匹配)来看到这一点,并注意到属性Evaluator 内部子类包括正则表达式,类Evaluator没有。

    您必须循环遍历按类名过滤的较小选择的结果:

    for (Element e : document.select("section.featured_name_tabs"))
        for (String s : e.className().split(" ")) //multiple classes space-separated
            if (s.startsWith("options"))
                doSomething(e);
    

    【讨论】:

      猜你喜欢
      • 2014-10-02
      • 2013-11-25
      • 2012-03-22
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 2011-07-19
      相关资源
      最近更新 更多