zoukankan      html  css  js  c++  java
  • SAXParser读取超大型xml

    利用dom解析xml需要一次性加载所有的xml内容 内容太大就要加大虚拟机的内存,如果超大,内存无法存放的话

    就只能采用流的形式了

    xml内容

    - <NewDataSet xmlns="">
    - <ExecResult diffgr:id="ExecResult1" msdata:rowOrder="0" diffgr:hasChanges="inserted" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <ResultValue>True</ResultValue>
      <ResultInfo>登录成功!</ResultInfo>
      <StatDateTime>2011-4-21</StatDateTime>
      </ExecResult>
    - <INTENT diffgr:id="INTENT2" msdata:rowOrder="1" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <INTENTID>8304885</INTENTID>
      <ADDCODE>4407</ADDCODE>
      <SENDDATE>2011-04-15 21:47:52</SENDDATE>
      <NMEMBERID>300479</NMEMBERID>
      <SMEMBERID>167131</SMEMBERID>
      <THEITEMID>6642238</THEITEMID>
      <COMMODITYID>88491</COMMODITYID>
      <BATCH>400</BATCH>
      <PRICE>29.2200</PRICE>
      <INNERID>20209</INNERID>
      <PROJECTID>260</PROJECTID>
      </INTENT>
    - <SENDPRODUCT diffgr:id="SENDPRODUCT4602" msdata:rowOrder="4601" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <THEITEMID>6360192</THEITEMID>
      <ADDCODE>4418</ADDCODE>
      <SENDQUANTITY>48</SENDQUANTITY>
      <BATCHTXT>10071002</BATCHTXT>
      <BILLNUMBER />
      <VALIDITYDATE>2012-1-9 0:00:00</VALIDITYDATE>
      <INVOICENUMBER />
      <SENDDATE>2011-04-15 17:40:10</SENDDATE>
      <PROJECTID>260</PROJECTID>
      <INNERID>3066</INNERID>
      <NMEMBERID>300370</NMEMBERID>
      <SMEMBERID>166980</SMEMBERID>
      <COMMONDITYID>49511</COMMONDITYID>
      <GUIDCODE />
      </SENDPRODUCT>
    - <PUBLIC_MEMBER diffgr:id="PUBLIC_MEMBER1" msdata:rowOrder="0" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <MEMBERID>305659</MEMBERID>
      <MEMBERCLASSID>1</MEMBERCLASSID>
      <MEMBERCLASSNAME>医疗机构</MEMBERCLASSNAME>
      <MEMBERNAME>惠州市惠城区横沥医院</MEMBERNAME>
      <ADDCODE>441302</ADDCODE>
      <TELEPHONE>13652772813</TELEPHONE>
      <FAX>0752-3185010</FAX>
      <ZIP>516253</ZIP>
      <THEADDRESS>惠州市惠城区横沥镇解放路184号</THEADDRESS>
      <EMAIL>heng1958@163.com</EMAIL>
      <CONTACT>邹宣平</CONTACT>
      </PUBLIC_MEMBER>
    - <PUBLIC_MEMBER_INFO diffgr:id="PUBLIC_MEMBER_INFO1" msdata:rowOrder="0" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <MEMBERID>26508</MEMBERID>
      <LICENSEID>粤HB20060033</LICENSEID>
      <REG_ADDRESS>广州增城市中新镇风光路178号</REG_ADDRESS>
      <DEPUTY>陈桂恩</DEPUTY>
      <PRESIDENT>陈桂恩</PRESIDENT>
      <QUANLITYPRINCIPAL />
      <SALESMODE />
      <PUBLICDEPARTMENT />
      <PROCESSSPAN>2010-12-31 00:00:00</PROCESSSPAN>
      </PUBLIC_MEMBER_INFO>
    - <Product diffgr:id="Product478" msdata:rowOrder="477" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <THEITEMID>412</THEITEMID>
      <ADDCODE>4401</ADDCODE>
      <SENDQUANTITY>1</SENDQUANTITY>
      <BATCHTXT>11</BATCHTXT>
      <BILLNUMBER />
      <VALIDITYDATE>2</VALIDITYDATE>
      <INVOICENUMBER>FP201103</INVOICENUMBER>
      <SENDDATE>2011-03-28 17:45:26</SENDDATE>
      <PROJECTID>142</PROJECTID>
      <INNERID>1</INNERID>
      <NMEMBERID>166764</NMEMBERID>
      <SMEMBERID>156400</SMEMBERID>
      <COMMONDITYID>328000</COMMONDITYID>
      </Product>
    - <COMMODITY diffgr:id="COMMODITY1" msdata:rowOrder="0" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <COMMODITYID>53829</COMMODITYID>
      <PROJECTID>260</PROJECTID>
      <TRADENAME>注射用亚叶酸钙</TRADENAME>
      <DOSE>注射用无菌粉末(冻干粉针)</DOSE>
      <SPEC>0.1g</SPEC>
      <PACKSPEC>1支/盒</PACKSPEC>
      <UNIT></UNIT>
      <PRODUCER_MEMBER_ID>155316</PRODUCER_MEMBER_ID>
      <PNAME>山西普德药业股份有限公司</PNAME>
      <APPROVE_NO>国药准字H14022464</APPROVE_NO>
      <DRUG_NAME>亚叶酸钙</DRUG_NAME>
      <DRUG_ID>5967</DRUG_ID>
      <DRUG_TYPE>1</DRUG_TYPE>
      <GMP_TYPE>1</GMP_TYPE>
      <GMP_NUMBER>G3662</GMP_NUMBER>
      <GMP_ENDDATE>2010-12-13 00:00:00</GMP_ENDDATE>
      <CONTROLID>1</CONTROLID>
      <INNERID>33824</INNERID>
      <THESTATE>1</THESTATE>
      <COMMODITYIDFORTC>53829</COMMODITYIDFORTC>
      <ISBASECOMM>0</ISBASECOMM>
      </COMMODITY>
      </NewDataSet>
    利用sax读取xml 内容是有技巧性的 比如如何处理 相同名字的节点  中文的话 他会一个字一个字的度的问题
    一下代码给出解释:
    package cn.net.tc.yjj.core.utils;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.XMLReader;
    import org.xml.sax.helpers.DefaultHandler;
    import cn.net.tc.yjj.system.dto.Commodity;
    import cn.net.tc.yjj.system.dto.Intent;
    import cn.net.tc.yjj.system.dto.PublicMember;
    import cn.net.tc.yjj.system.dto.PublicMemberInfo;
    import cn.net.tc.yjj.system.dto.SendProduct;
    public class SaxXmlUtil extends DefaultHandler {
     //总计有多少条数据
     private long total=0;
     String INTENT_INTENTID = "//NewDataSet//INTENT//INTENTID";
     String INTENT_ADDCODE = "//NewDataSet//INTENT//ADDCODE";
     String INTENT_SENDDATE = "//NewDataSet//INTENT//SENDDATE";
     String INTENT_NMEMBERID = "//NewDataSet//INTENT//NMEMBERID";
     String INTENT_SMEMBERID = "//NewDataSet//INTENT//SMEMBERID";
     String INTENT_THEITEMID = "//NewDataSet//INTENT//THEITEMID";
     String INTENT_COMMODITYID = "//NewDataSet//INTENT//COMMODITYID";
     String INTENT_BATCH = "//NewDataSet//INTENT//BATCH";
     String INTENT_PRICE = "//NewDataSet//INTENT//PRICE";
     String INTENT_INNERID = "//NewDataSet//INTENT//INNERID";
     String INTENT_PROJECTID = "//NewDataSet//INTENT//PROJECTID";
     String SENDPRODUCT_THEITEMID = "//NewDataSet//SENDPRODUCT//THEITEMID";
     String SENDPRODUCT_ADDCODE = "//NewDataSet//SENDPRODUCT//ADDCODE";
     String SENDPRODUCT_SENDQUANTITY = "//NewDataSet//SENDPRODUCT//SENDQUANTITY";
     String SENDPRODUCT_BATCHTXT = "//NewDataSet//SENDPRODUCT//BATCHTXT";
     String SENDPRODUCT_BILLNUMBER = "//NewDataSet//SENDPRODUCT//BILLNUMBER";
     String SENDPRODUCT_VALIDITYDATE = "//NewDataSet//SENDPRODUCT//VALIDITYDATE";
     String SENDPRODUCT_INVOICENUMBER = "//NewDataSet//SENDPRODUCT//INVOICENUMBER";
     String SENDPRODUCT_SENDDATE = "//NewDataSet//SENDPRODUCT//SENDDATE";
     String SENDPRODUCT_PROJECTID = "//NewDataSet//SENDPRODUCT//PROJECTID";
     String SENDPRODUCT_INNERID = "//NewDataSet//SENDPRODUCT//INNERID";
     String SENDPRODUCT_NMEMBERID = "//NewDataSet//SENDPRODUCT//NMEMBERID";
     String SENDPRODUCT_SMEMBERID = "//NewDataSet//SENDPRODUCT//SMEMBERID";
     String SENDPRODUCT_COMMONDITYID = "//NewDataSet//SENDPRODUCT//COMMONDITYID";
     String SENDPRODUCT_GUIDCODE = "//NewDataSet//SENDPRODUCT//GUIDCODE";
     String PUBLIC_MEMBER_MEMBERID = "//NewDataSet//PUBLIC_MEMBER//MEMBERID";
     String PUBLIC_MEMBER_MEMBERCLASSID = "//NewDataSet//PUBLIC_MEMBER//MEMBERCLASSID";
     String PUBLIC_MEMBER_MEMBERCLASSNAME = "//NewDataSet//PUBLIC_MEMBER//MEMBERCLASSNAME";
     String PUBLIC_MEMBER_MEMBERNAME = "//NewDataSet//PUBLIC_MEMBER//MEMBERNAME";
     String PUBLIC_MEMBER_ADDCODE = "//NewDataSet//PUBLIC_MEMBER//ADDCODE";
     String PUBLIC_MEMBER_TELEPHONE = "//NewDataSet//PUBLIC_MEMBER//TELEPHONE";
     String PUBLIC_MEMBER_FAX = "//NewDataSet//PUBLIC_MEMBER//FAX";
     String PUBLIC_MEMBER_ZIP = "//NewDataSet//PUBLIC_MEMBER//ZIP";
     String PUBLIC_MEMBER_THEADDRESS = "//NewDataSet//PUBLIC_MEMBER//THEADDRESS";
     String PUBLIC_MEMBER_EMAIL = "//NewDataSet//PUBLIC_MEMBER//EMAIL";
     String PUBLIC_MEMBER_CONTACT = "//NewDataSet//PUBLIC_MEMBER//CONTACT";
     String PUBLIC_MEMBER_INFO_MEMBERID = "//NewDataSet//PUBLIC_MEMBER_INFO//MEMBERID";
     String PUBLIC_MEMBER_INFO_LICENSEID = "//NewDataSet//PUBLIC_MEMBER_INFO//LICENSEID";
     String PUBLIC_MEMBER_INFO_REG_ADDRESS = "//NewDataSet//PUBLIC_MEMBER_INFO//REG_ADDRESS";
     String PUBLIC_MEMBER_INFO_DEPUTY = "//NewDataSet//PUBLIC_MEMBER_INFO//DEPUTY";
     String PUBLIC_MEMBER_INFO_PRESIDENT = "//NewDataSet//PUBLIC_MEMBER_INFO//PRESIDENT";
     String PUBLIC_MEMBER_INFO_QUANLITYPRINCIPAL = "//NewDataSet//PUBLIC_MEMBER_INFO//QUANLITYPRINCIPAL";
     String PUBLIC_MEMBER_INFO_SALESMODE = "//NewDataSet//PUBLIC_MEMBER_INFO//SALESMODE";
     String PUBLIC_MEMBER_INFO_PUBLICDEPARTMENT = "//NewDataSet//PUBLIC_MEMBER_INFO//PUBLICDEPARTMENT";
     String PUBLIC_MEMBER_INFO_PROCESSSPAN = "//NewDataSet//PUBLIC_MEMBER_INFO//PROCESSSPAN";
     String COMMODITY_COMMODITYID = "//NewDataSet//COMMODITY//COMMODITYID";
     String COMMODITY_PROJECTID = "//NewDataSet//COMMODITY//PROJECTID";
     String COMMODITY_TRADENAME = "//NewDataSet//COMMODITY//TRADENAME";
     String COMMODITY_DOSE = "//NewDataSet//COMMODITY//DOSE";
     String COMMODITY_SPEC = "//NewDataSet//COMMODITY//SPEC";
     String COMMODITY_PACKSPEC = "//NewDataSet//COMMODITY//PACKSPEC";
     String COMMODITY_UNIT = "//NewDataSet//COMMODITY//UNIT";
     String COMMODITY_PRODUCER_MEMBER_ID = "//NewDataSet//COMMODITY//PRODUCER_MEMBER_ID";
     String COMMODITY_PNAME = "//NewDataSet//COMMODITY//PNAME";
     String COMMODITY_APPROVE_NO = "//NewDataSet//COMMODITY//APPROVE_NO";
     String COMMODITY_DRUG_NAME = "//NewDataSet//COMMODITY//DRUG_NAME";
     String COMMODITY_DRUG_ID = "//NewDataSet//COMMODITY//DRUG_ID";
     String COMMODITY_DRUG_TYPE = "//NewDataSet//COMMODITY//DRUG_TYPE";
     String COMMODITY_GMP_TYPE = "//NewDataSet//COMMODITY//GMP_TYPE";
     String COMMODITY_GMP_NUMBER = "//NewDataSet//COMMODITY//GMP_NUMBER";
     String COMMODITY_GMP_ENDDATE = "//NewDataSet//COMMODITY//GMP_ENDDATE";
     String COMMODITY_CONTROLID = "//NewDataSet//COMMODITY//CONTROLID";
     String COMMODITY_INNERID = "//NewDataSet//COMMODITY//INNERID";
     String COMMODITY_THESTATE = "//NewDataSet//COMMODITY//THESTATE";
     String COMMODITY_COMMODITYIDFORTC = "//NewDataSet//COMMODITY//COMMODITYIDFORTC";
     String COMMODITY_ISBASECOMM = "//NewDataSet//COMMODITY//ISBASECOMM";
     String Product_THEITEMID="//NewDataSet//Product//THEITEMID";
     String Product_ADDCODE="//NewDataSet//Product//ADDCODE";
     String Product_SENDQUANTITY="//NewDataSet//Product//SENDQUANTITY";
     String Product_BATCHTXT="//NewDataSet//Product//BATCHTXT";
     String Product_BILLNUMBER="//NewDataSet//Product//BILLNUMBER";
     String Product_VALIDITYDATE="//NewDataSet//Product//VALIDITYDATE";
     String Product_INVOICENUMBER="//NewDataSet//Product//INVOICENUMBER";
     String Product_SENDDATE="//NewDataSet//Product//SENDDATE";
     String Product_PROJECTID="//NewDataSet//Product//PROJECTID";
     String Product_INNERID="//NewDataSet//Product//INNERID";
     String Product_NMEMBERID="//NewDataSet//Product//NMEMBERID";
     String Product_SMEMBERID="//NewDataSet//Product//SMEMBERID";
     String Product_COMMONDITYID="//NewDataSet//Product//COMMONDITYID";
     Intent intent = null;
     Commodity mod = null;
     SendProduct sp = null;
     PublicMember pm = null;
     PublicMemberInfo pmi = null;
     SendProduct product=null;
     StringBuffer currentPath = new StringBuffer();
     List list=new ArrayList();
     private int size=1000;
     // 文档解析开始
     public void startDocument() throws SAXException {
      System.out.println("开始解析xml文件......");
     }
     // 标签解析开始
     public void startElement(String namespaceURI, String localName,
       String qName, Attributes atts) throws SAXException {
      currentPath.append("//"+qName);
      System.out.println(currentPath);
      if ("INTENT".equals(qName)) {
       intent = new Intent();
      }
      if ("COMMODITY".equals(qName)) {
       mod = new Commodity();
      }
      if ("PUBLIC_MEMBER_INFO".equals(qName)) {
       pmi = new PublicMemberInfo();
      }
      if ("PUBLIC_MEMBER".equals(qName)) {
       pm = new PublicMember();
      }
      if ("SENDPRODUCT".equals(qName)) {
       sp = new SendProduct();
      }
      if ("Product".equals(qName)) {
       product = new SendProduct();
      }
     }
     // 标签解析结束
     public void endElement(String namespaceURI, String localName, String qName)
       throws SAXException {
      currentPath
        .delete(currentPath.lastIndexOf(qName)-1, currentPath.length());
      if ("INTENT".equals(qName)) {
       list.add(intent);
       intent = null;
      }
      if ("COMMODITY".equals(qName)) {
       list.add(mod);
       mod = null;
      }
      if ("PUBLIC_MEMBER_INFO".equals(qName)) {
       list.add(pmi);
       pmi = null;
      }
      if ("PUBLIC_MEMBER".equals(qName)) {
       list.add(pm);
       pm = null;
      }
      if ("SENDPRODUCT".equals(qName)) {
       list.add(sp);
       sp = null;
      }
      if ("Product".equals(qName)) {
       list.add(product);
       product = null;
      }
      if(list.size()>=size){
       total+=list.size();
       //调用保持统计
       System.out.println(">>>>>>>>>处理这以前条数据");
       //清空list
       list.clear();
       System.out.println(">>>>>>>>>>清空list");
       try {
        Thread.sleep(1000);
       } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
      }
     }
     // 字符串解析
     public void characters(char[] ch, int start, int length) {
      if (currentPath.toString().equals(INTENT_INTENTID)) {
       intent.setIntendId((intent.getIntendId() != null ? intent
         .getIntendId() : "")
         + new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_ADDCODE)) {
        intent.setAddCode((intent.getAddCode()!=null?intent.getAddCode():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_SENDDATE)) {
        intent.setSendDate((intent.getSendDate()!=null?intent.getSendDate():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_NMEMBERID)) {
        intent.setNmemberId((intent.getNmemberId()!=null?intent.getNmemberId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_SMEMBERID)) {
        intent.setSmemberId((intent.getSmemberId()!=null?intent.getSmemberId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_THEITEMID)) {
        intent.setItemId((intent.getItemId()!=null?intent.getItemId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_COMMODITYID)) {
        intent.setCommodityId((intent.getCommodityId()!=null?intent.getCommodityId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_BATCH)) {
        intent.setBatch((intent.getBatch()!=null?intent.getBatch():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_PRICE)) {
        intent.setPrice((intent.getPrice()!=null?intent.getPrice():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_INNERID)) {
        intent.setInnerId((intent.getInnerId()!=null?intent.getInnerId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(INTENT_PROJECTID )) {
        intent.setProjectId((intent.getProjectId()!=null?intent.getProjectId():"")+new String(ch, start, length));
      }
      
      //sendproject
      if (currentPath.toString().equals(SENDPRODUCT_THEITEMID )) {
        sp.setItemId((sp.getItemId()!=null?sp.getItemId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_ADDCODE)) {
        sp.setAddCode((sp.getAddCode()!=null?sp.getAddCode():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_SENDQUANTITY)) {
        sp.setSendQuantity((sp.getSendQuantity()!=null?sp.getSendQuantity():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_BATCHTXT )) {
        sp.setBatchTxt((sp.getBatchTxt()!=null?sp.getBatchTxt():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_BILLNUMBER )) {
        sp.setBillNumber((sp.getBillNumber()!=null?sp.getBillNumber():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_VALIDITYDATE )) {
        sp.setValidityDate((sp.getValidityDate()!=null?sp.getValidityDate():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_INVOICENUMBER  )) {
        sp.setInvoiceNumber((sp.getInvoiceNumber()!=null?sp.getInvoiceNumber():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_SENDDATE  )) {
        sp.setSendDate((sp.getSendDate()!=null?sp.getSendDate():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_PROJECTID  )) {
        sp.setProjectId((sp.getProjectId()!=null?sp.getProjectId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_INNERID)) {
        sp.setInnerId((sp.getInnerId()!=null?sp.getInnerId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_NMEMBERID)) {
        sp.setNmemberId((sp.getNmemberId()!=null?sp.getNmemberId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_SMEMBERID)) {
        sp.setSmemberId((sp.getSmemberId()!=null?sp.getSmemberId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_COMMONDITYID)) {
        sp.setCommodityId((sp.getCommodityId()!=null?sp.getCommodityId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(SENDPRODUCT_GUIDCODE)) {
        sp.setGuidCode((sp.getGuidCode()!=null?sp.getGuidCode():"")+new String(ch, start, length));
      }
      //PUBLIC_MEMBER
      if (currentPath.toString().equals(PUBLIC_MEMBER_MEMBERID)) {
        pm.setMemberId((pm.getMemberId()!=null?pm.getMemberId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_MEMBERCLASSID)) {
        pm.setMemberClassId((pm.getMemberClassId()!=null?pm.getMemberClassId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_MEMBERCLASSNAME)) {
        pm.setMemberClassName((pm.getMemberClassName()!=null?pm.getMemberClassName():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_MEMBERNAME)) {
        pm.setMemberName((pm.getMemberName()!=null?pm.getMemberName():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_ADDCODE )) {
        pm.setAddCode((pm.getAddCode()!=null?pm.getAddCode():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_TELEPHONE )) {
        pm.setTelePhone((pm.getTelePhone()!=null?pm.getTelePhone():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_FAX )) {
        pm.setFax((pm.getFax()!=null?pm.getFax():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_ZIP  )) {
        pm.setZip((pm.getZip()!=null?pm.getZip():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_THEADDRESS  )) {
        pm.setAddress((pm.getAddress()!=null?pm.getAddress():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_EMAIL  )) {
        pm.setEmail((pm.getEmail()!=null?pm.getEmail():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_CONTACT  )) {
        pm.setContact((pm.getContact()!=null?pm.getContact():"")+new String(ch, start, length));
      }
      //PUBLIC_MEMBER_INFO
      if (currentPath.toString().equals(PUBLIC_MEMBER_INFO_MEMBERID)) {
        pmi.setMemberId((pmi.getMemberId()!=null?pmi.getMemberId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_INFO_LICENSEID )) {
        pmi.setLicenseId((pmi.getLicenseId()!=null?pmi.getLicenseId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_INFO_REG_ADDRESS )) {
        pmi.setRegAddress((pmi.getRegAddress()!=null?pmi.getRegAddress():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_INFO_DEPUTY )) {
        pmi.setDePuty((pmi.getDePuty()!=null?pmi.getDePuty():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_INFO_PRESIDENT )) {
        pmi.setPresident((pmi.getPresident()!=null?pmi.getPresident():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_INFO_QUANLITYPRINCIPAL )) {
        pmi.setQuanlityPrincipal((pmi.getQuanlityPrincipal()!=null?pmi.getQuanlityPrincipal():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_INFO_SALESMODE )) {
        pmi.setSalesMode((pmi.getSalesMode()!=null?pmi.getSalesMode():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_INFO_PUBLICDEPARTMENT )) {
        pmi.setPublicDepartMent((pmi.getPublicDepartMent()!=null?pmi.getPublicDepartMent():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(PUBLIC_MEMBER_INFO_PROCESSSPAN )) {
        pmi.setProcessSpanStr((pmi.getProcessSpanStr()!=null?pmi.getProcessSpanStr():"")+new String(ch, start, length));
      }
      //COMMODITY
      if (currentPath.toString().equals(COMMODITY_COMMODITYID )) {
        mod.setCommodityId((mod.getCommodityId()!=null?mod.getCommodityId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_PROJECTID  )) {
        mod.setProjectId((mod.getProjectId()!=null?mod.getProjectId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_TRADENAME  )) {
        mod.setTradeName((mod.getTradeName()!=null?mod.getTradeName():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_DOSE  )) {
        mod.setDose((mod.getDose()!=null?mod.getDose():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_SPEC  )) {
        mod.setSpec((mod.getSpec()!=null?mod.getSpec():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_PACKSPEC  )) {
        mod.setPackSpec((mod.getPackSpec()!=null?mod.getPackSpec():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_UNIT  )) {
        mod.setUnit((mod.getUnit()!=null?mod.getUnit():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_PRODUCER_MEMBER_ID  )) {
        mod.setProducerMemberId((mod.getProducerMemberId()!=null?mod.getProducerMemberId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_PNAME  )) {
        mod.setPname((mod.getPname()!=null?mod.getPname():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_APPROVE_NO  )) {
        mod.setApproveNo((mod.getApproveNo()!=null?mod.getApproveNo():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_DRUG_NAME  )) {
        mod.setDrugName((mod.getDrugName()!=null?mod.getDrugName():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_DRUG_ID  )) {
        mod.setDrugId((mod.getDrugId()!=null?mod.getDrugId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_DRUG_TYPE  )) {
        mod.setDrugType((mod.getDrugType()!=null?mod.getDrugType():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_GMP_TYPE   )) {
        mod.setGmpType((mod.getGmpType()!=null?mod.getGmpType():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_GMP_NUMBER   )) {
        mod.setGmpNumber((mod.getGmpNumber()!=null?mod.getGmpNumber():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_GMP_ENDDATE   )) {
        mod.setGmpEndDate((mod.getGmpEndDate()!=null?mod.getGmpEndDate():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_CONTROLID   )) {
        mod.setControlId((mod.getControlId()!=null?mod.getControlId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_INNERID   )) {
        mod.setInnerId((mod.getInnerId()!=null?mod.getInnerId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_THESTATE   )) {
        mod.setState((mod.getState()!=null?mod.getState():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_COMMODITYIDFORTC   )) {
        mod.setCommodityIdForTc((mod.getCommodityIdForTc()!=null?mod.getCommodityIdForTc():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(COMMODITY_ISBASECOMM    )) {
        mod.setIsBaseComm((mod.getIsBaseComm()!=null?mod.getIsBaseComm():"")+new String(ch, start, length));
      }
      //PRODUCT
      if (currentPath.toString().equals(Product_THEITEMID    )) {
       product.setItemId((product.getItemId()!=null?product.getItemId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_ADDCODE    )) {
       product.setAddCode((product.getAddCode()!=null?product.getAddCode():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_SENDQUANTITY    )) {
       product.setSendQuantity((product.getSendQuantity()!=null?product.getSendQuantity():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_BATCHTXT    )) {
       product.setBatchTxt((product.getBatchTxt()!=null?product.getBatchTxt():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_BILLNUMBER   )) {
       product.setBillNumber((product.getBillNumber()!=null?product.getBillNumber():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_VALIDITYDATE    )) {
       product.setValidityDate((product.getValidityDate()!=null?product.getValidityDate():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_INVOICENUMBER    )) {
       product.setInvoiceNumber((product.getInvoiceNumber()!=null?product.getInvoiceNumber():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_SENDDATE   )) {
       product.setSendDate((product.getSendDate()!=null?product.getSendDate():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_PROJECTID    )) {
       product.setProjectId((product.getProjectId()!=null?product.getProjectId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_INNERID    )) {
       product.setInnerId((product.getInnerId()!=null?product.getInnerId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_NMEMBERID)) {
       product.setNmemberId((product.getNmemberId()!=null?product.getNmemberId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_SMEMBERID)) {
       product.setSmemberId((product.getSmemberId()!=null?product.getSmemberId():"")+new String(ch, start, length));
      }
      if (currentPath.toString().equals(Product_COMMONDITYID)) {
       product.setCommodityId((product.getCommodityId()!=null?product.getCommodityId():"")+new String(ch, start, length));
      }
     }
     // 文档解析结束
     public void endDocument() throws SAXException {
      System.out.println("解析xml文件结束!/n");
     }
      public static void main(String[] args) {
       long d=new Date().getTime();
        SaxXmlUtil sax=new SaxXmlUtil();
      //生成SAX解析器工厂
       SAXParserFactory spf = SAXParserFactory.newInstance();
       XMLReader xmlReader = null;
       SAXParser saxParser=null;
       String filename="d:/train.xml";
       try {
        // 创建一个解析器SAXParser对象
        saxParser = spf.newSAXParser();
        // 得到SAXParser中封装的SAX XMLReader
        xmlReader = saxParser.getXMLReader();
        //设置解析时处理事件的对象
        xmlReader.setContentHandler(sax);
        //开始解析XML文件
        xmlReader.parse(filename);
        System.out.println("最后剩余的数据:"+sax.list.size());
        System.out.println("总计处理的数据:"+sax.total);
        long d1=new Date().getTime();
        System.out.println("用时:"+(d1-d));
       }catch (Exception ex) {
        System.out.println(ex);
       }
       //输出解析结果
     
     }
    }
  • 相关阅读:
    WeihanLi.Npoi 1.10.0 更新日志
    消除代码中的坏味道,编写高质量代码
    代码重构之法——方法重构分析
    使用 C# 捕获进程输出
    .net core 中的经典设计模式的应用
    JDBC 规范中文版 4.2 -第一章 简介
    基础回顾-线程的几种状态
    一文读懂BeanFactory和FactoryBean区别
    阿里云云计算ACA 第三章 阿里云存储服务
    阿里云云计算ACA 第二章 阿里云弹性计算
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331512.html
Copyright © 2011-2022 走看看