JAVA

2016-09-30 2 views
0

I는 다음과 같습니다 코드의 2K + 라인을 포함하는 HTML 파일을했습니다에 HTML 파일에서 특정 데이터를 얻는 방법 :JAVA

< tr> 
    <td class="name">Abkhazia</td> 
    <td>Asia<br> 
    <small>(Central West)</small> 
    </td> 

    <td>Sukhumi</td> 
    <td>Georgian lari;<br>Russian ruble</td> 

    <td class="numeric">216,000</td> 
    <td class="numeric">8,600</td> 
    <td class="numeric">25</td> 
    <td class="numeric">-</td> 
    <td class="numeric">-</td> 
    <td class="numeric">-</td> 
    <td class="numeric">-</td> 
< /tr> 

나는 그것의 데이터를 다음 추출해야합니다 Country_NameCapital_City , 각 다음 국가에 대해 Population, which are 1'st, 3'rd5'th<td> content < /td>이 목록에 있습니다.

어떻게 수행하나요? 나는 Jsoup으로, 예를 들어, 많은 아이디어를 시도 :

public static String html2text(String html) { 
    return Jsoup.parse(html).text(); 
} 

을하지만 보인다 충분하지 둘 이상의 단어를 포함 할 수 있습니다 목록 또는 통화 (목록에 같은 문제의 4'th)에 2 '입니다 < td> Location < /td> 동안 . 코드에 따라

답변

2

(Extract Tags from a html file using Jsoup에서 가져온) 태그를 추출하는 Jsoup을 사용

public class JsoupDepthFirst { 

    private static String htmlTags(Document doc) { 
     StringBuilder sb = new StringBuilder(); 
     htmlTags(doc.children(), sb); 
     return sb.toString(); 
    } 

    private static void htmlTags(Elements elements, StringBuilder sb) { 
     for(Element el:elements) { 
      if(sb.length() > 0){ 
       sb.append(","); 
      } 
      sb.append(el.nodeName()); 
      htmlTags(el.children(), sb); 
      sb.append(",").append(el.nodeName()); 
     } 
    } 

    public static void main(String... args){ 
     String s = "<html><head>this is head </head><body>this is body</body></html>"; 
     Document doc = Jsoup.parse(s); 
     System.out.println(htmlTags(doc)); 
    } 
}