我正在浏览不同的网页以使用jsoup进行处理,我想要访问的页面中的部分以这种方式进行格式化:
<section class="featured_name_tabs options9">
通常,要做到这一点,我会做以下事情:
document.select("section.featured_name_tabs.options9")
但是,我注意到class属性末尾的数字实际上发生了变化,所以我现在需要的是(最后用asterix):
document.select("section.featured_name_tabs.options*")
^但显然这不起作用。现在我发现字符串的结尾并不总是相同,我如何选择该元素?谢谢!
答案 0 :(得分:0)
您无法使用选择器语法直接执行此操作。你可以通过查看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);