如何使用jsoup从String中提取元素?

时间:2016-10-30 10:01:01

标签: java jsoup

我想写一小段代码,这些代码将会超越" Kategorie"用jsoup从href中删除。

<a href="/wiki/Kategorie:Herrscher_des_Mittelalters" title="Kategorie:Herrscher des Mittelalters">Herrscher des Mittelalters</a>

在这种情况下,我正在搜索Herrscher des Mittelalters

我的代码使用BufferedReader读取.txt文件的第一行。

    BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(new File(FilePath)), Charset.forName("UTF-8")));

    Document doc = Jsoup.parse(r.readLine());
    Element elem = doc;

我知道有一些命令可以获取href-link,但我不知道在href-link中搜索元素的命令。

有什么建议吗?

其他信息:我的.txt文件包含完整的维基百科HTML页面。

2 个答案:

答案 0 :(得分:1)

这应该可以从链接中获取所有标题。您可以根据需要进一步分割标题:

    Document d = Jsoup.parse("<a href=\"/wiki/Kategorie:Herrscher_des_Mittelalters\" title=\"Kategorie:Herrscher des Mittelalters\">Herrscher des Mittelalters</a>");

    Elements links = d.select("a");

    Set<String> categories = new HashSet<>();
    for (Element script : links) {
        String title = script.attr("title");
        if (title.length() > 0) {
            categories.add(title);
        }

    }

    System.out.println(categories);

答案 1 :(得分:0)

您可以使用getElementsContainingText()方法(org.jsoup.nodes.Document)搜索包含任何文本的元素。

Elements elements = doc.getElementsContainingText("Herrscher des Mittelalters");
   for(int i=0; i<elements.size();i++) {
        Element element = elements.get(i);
        System.out.println(element.text());
    }