选择除了选择器Jsoup之外的所有元素

时间:2017-09-08 19:39:12

标签: jsoup

我想从除<blockquote>元素之外的html中选择所有内容。如何使用Jsoup以最简单的方式执行此操作? 我知道有一个:not语法,但在这个例子中如何使用它?

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class AppMain {
    public static void main(String[] args) throws IOException { 
        String html = "<body> <blockquote> ...remove.this... </blockquote> ...get.this... </body>";
        Document d = Jsoup.parse(html);
        Element element = d.select(:not("blockquote").first(); // doesn't work
        System.out.println(element.text()); // here I want get only: `...get.this...'
}
}

1 个答案:

答案 0 :(得分:1)

你在这一行中有一个语法错误(你的编译器应该抱怨它):

d.select(:not("blockquote"); // doesn't work

这将是有效的语法:

d.select(":not(blockquote)");

因为select是一个Java method,它带有String个参数。所以你必须给它一个String,例如:

d.select("something");

"something"必须是选择器。在您的情况下:":not(blockquote)"

另一种方法是选择所有<blockquote>元素和remove元素:

d.select("blockquote").remove()
// after that, work with d