2016-10-30 3 views
2

jsoup를 사용하여 href의 "카테고리"를 exctract하는 코드를 작성하고 싶습니다.jsoup를 사용하여 String에서 요소를 추출하는 방법은 무엇입니까?

<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 링크를 얻을 수있는 명령이 있습니다하지만 난 HREF 링크의 요소를 검색하는 명령을 모른다.

제안 사항?

추가 정보 : 내 .txt 파일에는 전체 위키피디아 HTML 페이지가 포함되어 있습니다.

+0

죄송합니다. HTML에 대해 많이 알지 못합니다. 이드가 무슨 뜻이야? –

+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"는 title-Element의 일부입니까? –

관련 문제