使用JSoup选择具有多个类的元素

时间:2014-02-11 05:55:05

标签: java html json jsoup

我正在从网站解析一些表格,特别是我试图按类名提取以下单元格:

Elements e=d.select("span[class=bld lrg red]");

for (Element element : e) {
System.out.println(element.text());}

这段代码给了我一些价值,这些价值在网站上以Price的形式给出。但在某些情况下,我想从不同的类而不是"span[class=bld lrg red]"中获取价格。

我的意思是“bld lrg red”类是空的然后我想从“span [class = price]”中取值

在这种情况下如何使用'或'...我的意思是如果“bld lrg red”类具有值,则取该价格或取“price”类值。

1 个答案:

答案 0 :(得分:3)

您也可以使用regex使用jsoup从网页中选择所需的元素,您可以使用“OR”条件来指定您要查找的内容;

示例:

Elements e = d.select("span[class~=(?i)(bld lrg red|price)]");

上述正则表达式会选择span元素,class选择器直接匹配bld lrg redprice(不区分大小写)。

详情请参阅此处:http://jsoup.org/apidocs/org/jsoup/select/Selector.html

现在你可能想迭代元素并选择哪些不是空白,空,两者等等。

编辑:根据评论,price class元素不会保留span。要克服它,你可以使用:

Elements e = d.select("span[class=bld lrg red],del[class=price]");