2016-10-30 8 views
2

jsoupを使ってhrefの "カテゴリ"をexctractするコードの小さな部分を書きたいと思います。私はHerrscher des Mittelaltersを探しています。この場合jsoupで文字列から要素を抽出するには?

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

私のコードは、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ファイルには、完全なWikipedia HTMLページが含まれています。

+0

申し訳ありませんが、私はHTMLについてよく知らないです。あなたはIDによって何を意味しますか? –

+0

probsは、私のコードを参照してください – developer

答えて

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); 
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()); 
    } 
+0

最後に、 "Kategorie"は、タイトル要素の一部ですか? –