dom4j解析xml文件-字符串分组算法-list分页

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

// 找到节点修改节点内的值.elements(“节点名称”)
SAXReader reader = new SAXReader();
try{
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
Document document = reader.read(new URL(call));
Element rootElement = document.getRootElement();
List l = rootElement.elements().get(5).elements().get(1).elements().get(0).elements();
for (Element e: l) {
if(“Flag”.equals(e.getName())) {
e.setText(“1”);
}
}
String newXml=document.asXML();
System.out.println(newXml);

SAXReader reader = new SAXReader();
try{
List list1 = new ArrayList<>();
Document document = reader.read(new URL(call));
Element rootElement = document.getRootElement();
List l = rootElement.elements().get(5).elements().get(1).elements().get(1).elements().get(2).elements();
l.forEach(element -> {
List visitsElments = element.elements();
VisitInfo visit = new VisitInfo();
visitsElments.forEach(visitElement -> {
// 工号
if (“DoctId”.equals(visitElement.getName())) {
visit.setDoctorCode(visitElement.getTextTrim());
}
// 姓名
if (“DoctName”.equals(visitElement.getName())) {
visit.setDoctorName(visitElement.getTextTrim());
}
if (“RegisterRemain”.equals(visitElement.getName())) {
List l2=visitElement.elements();
l2.forEach(v -> {
// 地址
if (“LocInfo”.equals(v.getName())) {
visit.setRoomName(v.getTextTrim());
}
// 上午
if (“NoonName”.equals(v.getName())) {
visit.setPeriod(v.getTextTrim());
}
// 类型
if (“SessionType”.equals(v.getName())) {
visit.setDoctorType(v.getTextTrim());
}
});
}
});
list1.add(visit);
});
return list1;
}catch (Exception e){
e.printStackTrace();
}
/3、分组算法 人物编号*/
public static List OrderSortByGroup(List list) {
Map<String, List> skuIdMap = new HashMap<>();
for (VisitInfo skuVo : list) {
List tempList = skuIdMap.get(skuVo.getDoctorCode());
/如果取不到数据,那么直接new一个空的ArrayList*/
if (tempList == null) {
tempList = new ArrayList<>();
tempList.add(skuVo);
skuIdMap.put(skuVo.getDoctorCode(), tempList);
} else {
/某个sku之前已经存放过了,则直接追加数据到原来的List里*/
tempList.add(skuVo);
}
}
/3、遍历map,验证结果*/
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
for (String skuId : skuIdMap.keySet()) {
list1 = skuIdMap.get(skuId);
VisitInfo visitInfo = new VisitInfo();
visitInfo.setDoctorCode(list1.get(0).getDoctorCode());
visitInfo.setDoctorName(list1.get(0).getDoctorName());
visitInfo.setDeptName(list1.get(0).getDeptName());
visitInfo.setRoomName(list1.get(0).getRoomName());
visitInfo.setVisitDate(list1.get(0).getVisitDate());
visitInfo.setDoctorType(list1.get(0).getDoctorType());
for (VisitInfo visit : list1) {
if (“上午”.equals(visit.getPeriod())) {
visitInfo.setPeriod(visit.getPeriod());
visitInfo.setVisitState(visit.getVisitState());
} else if (“下午”.equals(visit.getPeriod())) {
visitInfo.setAfterData(visit.getPeriod());
visitInfo.setAfterVisitSate(visit.getVisitState());
}
}
list2.add(visitInfo);
}
return list2;
}
/2、分页算法*/
private List subList(List list, int i, int pagesize) {

    int totalcount = list.size();
    int pagecount = 0;
    int m = totalcount % pagesize;
    List<Integer> subList = new ArrayList<>();
    List<Object> listAll = new ArrayList<>();
    if (m > 0) {
        pagecount = totalcount / pagesize + 1;
    } else {
        pagecount = totalcount / pagesize;
    }
    if (m == 0) {
        subList = list.subList((i - 1) * pagesize, pagesize * (i));
    } else {
        if (i == pagecount) {
            subList = list.subList((i - 1) * pagesize, totalcount);
        } else {
            subList = list.subList((i - 1) * pagesize, pagesize * (i));
        }

    }
    listAll.add(list.size());
    listAll.add(subList);
    return listAll;
}

List内对象根据id分页
Collections.sort(departmentNewList, new Comparator() { // 对新增科室进行排序
@Override
public int compare(Department p1, Department p2) {
//按照Deptment的id进行升序排列
if (p1.getSort() > p2.getSort()) {
return 1;
}
if (p1.getSort().equals(p2.getSort())) {
return 0;
}
return -1;
}
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值