簡體   English   中英

如何從JAVA中的html文件獲取特定數據

[英]How to get specific data from a html file in JAVA

我有一個html文件,其中包含2k +行代碼,如下所示:

< 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_CityPopulationwhich are 1'st 3'rd5'th <td> content < /td>在列表中,對於每個下一個國家。

怎么做? 我嘗試了很多想法,例如使用Jsoup:

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

但這似乎還不夠,盡管< td> Location < /td>在列表中的第二位或“貨幣”(在列表中相同的第四位)可能包含多個單詞。

以下代碼段使用Jsoup提取標簽( 使用Jsoup從html文件中的Extract Tags中提取 ):

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));
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM