zoukankan      html  css  js  c++  java
  • xml解析

    创建Dom4j的Document用于解析xml

    protected Element createDocument(String xml) {
      try {
       Document document = new SAXReader().read(Thread.currentThread()
         .getContextClassLoader().getResourceAsStream(xml));
       // Document document = DocumentHelper.parseText(xml);
       Element root = document.getRootElement();

       return root;
      } catch (DocumentException e) {
       e.printStackTrace();
      }

      return null;
     }

    @Override
     public void parseXML(String xml, List<AnnualTargetSummary> list) {
      Element element = createDocument(xml);
      // 提取统计月指标数据

      List<Element> l = element.selectNodes("//deptTargetSummaries"); // 指标数据

      if (null != l) {
       for (int i = 0; i < l.size(); i++) {

        Element __e = (Element) element.selectObject("//summarydate["
          + (i + 1) + "]");// 获取Summarydate节点

        Element _e = l.get(i); // deptTargetSummaries

        List<Element> infoList = _e
          .selectNodes("targets/targetSummaries");

        AnnualTargetSummary ats = new AnnualTargetSummary();
        List<DeptmentSummary> dslist = new ArrayList<DeptmentSummary>();
        ats.setDateStr(__e.getText()); // 设置月份
        ats.setMonth(i + 1);
        if (null != infoList) {
         for (int j = 0; j < infoList.size(); j++) {
          DeptmentSummary ds = new DeptmentSummary();
          Element deptElement = (Element) _e
            .selectObject("deptname[" + (j + 1) + "]");

          ds.setDeptName(deptElement.getText());// 设置部门

          Element summaries = infoList.get(j);

          List<Element> summariesList = summaries
            .selectNodes("name");
          if (null != summariesList) {
           List<SummaryInfo> summaryInfoList = new ArrayList<SummaryInfo>();
           for (int k = 0; k < summariesList.size(); k++) {
            SummaryInfo summaryInfo = new SummaryInfo();

            Element value = summariesList.get(k);// 名称
            summaryInfo.setName(value.getText());

            value = (Element) summaries
              .selectObject("unit[" + (k + 1) + "]");// 单位
            summaryInfo.setUnit(value.getText());

            value = (Element) summaries
              .selectObject("completed[" + (k + 1)
                + "]");
            summaryInfo.setCompleted(value.getText());

            value = (Element) summaries
              .selectObject("basiscompleted["
                + (k + 1) + "]");
            summaryInfo.setBasiscompleted(value.getText());

            value = (Element) summaries
              .selectObject("yearcompleted["
                + (k + 1) + "]");
            summaryInfo.setYearcompleted(value.getText());

            summaryInfoList.add(summaryInfo);

           }

           ds.setSummaryInfoList(summaryInfoList);
          }

          dslist.add(ds);
         }
         ats.setDeptments(dslist);

        }
        list.add(ats);
       }
      }
     }

    解析

    String xml = "GetAnnualTargetSummary.xml";
      
      Parser parser = XMLParseFactory.getParser("GetAnnualTargetSummary");

      List<AnnualTargetSummary> list = new ArrayList<AnnualTargetSummary>();

      parser.parseXML(xml, list);

  • 相关阅读:
    Canvas API
    Lind.DDD.Aspects通过Plugins实现方法的动态拦截~Lind里的AOP
    Lind.DDD.LindMQ~关于持久化到Redis的消息格式
    MongoDB学习笔记~根据子集合里某个属性排序
    大叔最新课程~MVC核心技术剖析
    大叔最新课程~EF核心技术剖析
    hdu4300之KMP&&EKMP
    HDU 2594 Simpsons’ Hidden Talents KMP
    邮箱工具(尚未完成)的几个组件类
    java--折半查找
  • 原文地址:https://www.cnblogs.com/winkey4986/p/2721178.html
Copyright © 2011-2022 走看看