利用jsoup來處理含有html碼的資料流。
package com.cn;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class cv {
/**
* @param args
*/
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Elements tds=null;
String html="gfg<br><table><tr><td>1</td><td>yecao</td></tr><tr><td>2</td><td>yc</td></tr></table>";//測試內容
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
//開始使用Jsoup
//Jsoup支援一個Document類 將剛才的html轉化成Document
Document document = Jsoup.parse(html);
//一個Document又由elements組成 我們選擇”tr”開頭的標籤,存入 trs元素群中
Elements trs = document.select("tr");
//得到整個HTML中包含tr的標籤的個數
int totalTrs = trs.size();
//我們可以觀察上面沒有搜尋結果的那個HTML。發現,如果totalTrs<=3就表示沒結果。
//只要有書目結果totalTrs必定大於3,於是
if(totalTrs > 0)
for(int i = 0;i < totalTrs ;i++)
{
//觀察HTML,從第i+2個tr開始,包含的才是我們要的書目資訊
//我們從每個tr中選出td標籤元素群
tds = trs.get(i).select("td");
//得到每個tr中td的個數
int totalTds = tds.size();
//一個臨時的HashMap,裡面是String-Object索引值對
Map<String,Object> map = new HashMap<String,Object>();
//j是一個標識數
for(int j =0;j < totalTds ;j++)
{
switch (j) {
case 0:
map.put("001", tds.get(j).html().toString());
break;
case 1:
map.put("002", tds.get(j).html().toString());
break;
default:
break;
}
}
list.add(map);
}
System.out.println(document);
System.out.println(trs);
System.out.println(trs.size());
System.out.println(tds);
System.out.println(tds.size());
System.out.println(list);
}
}
命令框顯示內容: