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);
   }
   //输出解析结果
 
 }
}
原文地址:https://www.cnblogs.com/liaomin416100569/p/9331513.html