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 想问一下stata17中这段代码哪里有问题呀
    • ¥15 flink cdc无法实时同步mysql数据
    • ¥100 有人会搭建GPT-J-6B框架吗?有偿
    • ¥15 求差集那个函数有问题,有无佬可以解决
    • ¥15 【提问】基于Invest的水源涵养
    • ¥20 微信网友居然可以通过vx号找到我绑的手机号
    • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
    • ¥15 解riccati方程组
    • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
    • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决