2234214 2015-05-30 11:58 采纳率: 0%
浏览 721

JAVA jsoup解析网页时,并以列表方式输出,但采用键值对方式时出现错误,跪求解决!!!!

部分代码:public static List> getKcList(String str) {
List> kcList = new ArrayList>();
Document doc = Jsoup.parse(str);
Elements datas = doc.getElementsByTag("table");
Element data = datas.get(0);
Elements trs = data.getElementsByTag("tr");
for (int i = 0; i < trs.size(); i++) {

       Elements tds = trs.get(i).select("td[rowspan=2]");
       for (int j = 0; j < tds.size(); j++) {



           if (!"".equals(tds.get(j).text())) {

                   kcList.add(getkcMap(tds.get(j).text()));

               }
           }

}
Log.i("Td","kcList"+kcList.size());
// Log.i("Th","kcList"+kcList.size());
return kcList;
}
/***************************
* 数据封装
****************************/
private static MapgetkcMap(String str){
String courseInfo[]=new String[]{
"课程编号:","课程名称:","教师号:","教师姓名:",
"上课时间:", "上课教室:","答疑时间:","答疑地点:",

    };
    String sCourse[] = str.split("\n");
    int i = 0;
    Map<String, String> map = new HashMap<String, String>();
    for (;i < sCourse.length; i++) {
        String s = sCourse[i];
        map.put(courseInfo[i], s);
        Log.i("Td", i + courseInfo[i] + "==" + s);
    }

    return map;

}

}

显示时: private void toShow(){
StringBuffer sb = new StringBuffer();
for(Mapmap:kcList){
for(String key : map.keySet()) {
if(!"".equals(map.get(key)))
sb.append(key).append(" ").append(map.get(key)).append(" ");
}
sb.append("\n----------------------\n");
}

  kb.setText(sb.toString());
}

}

显示结果出现错误如下:图片说明

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 c程序不知道为什么得不到结果
    • ¥40 复杂的限制性的商函数处理
    • ¥15 程序不包含适用于入口点的静态Main方法
    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置