Element CATIElement = null;
while(iterator.hasNext()) { / I 循环    fxqdejy = (FxqDejy)iterator.next();
    i=i+1;
    String stri =""+i;
    CATIElement = CATIsElement.addElement("CATI");    ...
}

解决方案 »

  1.   

    多谢各位,转到java时间不长,见笑了,我把这个错误的完整代码全贴上吧,希望能纠正我的错误
    package com.KCCB.app;import java.io.File;
    import java.io.FileWriter;
    import java.io.UnsupportedEncodingException;
    import java.util.Iterator;
    import java.util.List;
    import org.dom4j.Attribute;
    import org.dom4j.Branch;
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.XMLWriter;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;import com.KCCB.db.*;
    import com.KCCB.pojo.*;
    import java.io.OutputStream;public class CreateXmlNBH {

    public CreateXmlNBH(){

    } public String createDaeXMLFile(OutputStream os) throws UnsupportedEncodingException{

    String returnvalue="success";
    int i = 0;
    int j = 0;
    FxDejyDAO fxdejydao = new FxDejyDAO();
    FxqDejy fxqdejy = new FxqDejy();

    FxqNumDAO faxnumdao = new FxqNumDAO();
    FxqNum faxnum = new FxqNum();

    Document document = DocumentHelper.createDocument();
    List list = fxdejydao.findAll("20070401");
    Iterator iterator = list.iterator();

    Element HVTRElement = document.addElement("HVTR");
    HVTRElement.addComment("大额交易报文");

    Element RBIFElement = HVTRElement.addElement("RBIF");
    //bookElement.addAttribute("show", "yes");


    fxqdejy = (FxqDejy)iterator.next();



    Element RINMElement = RBIFElement.addElement("RINM");
    RINMElement.setText(new String(fxqdejy.getRinm().getBytes("cp850")));//("报告机构名称")
    Element RICDElement = RBIFElement.addElement("RICD");
    RICDElement.setText(fxqdejy.getRicd());//("报告机构编码")
    Element RPDTElement = RBIFElement.addElement("RPDT");
    RPDTElement.setText(fxqdejy.getId().getRpdt());//("报告生成日期")
    Element CTTNElement = RBIFElement.addElement("CTTN");
    CTTNElement.setText(fxqdejy.getId().getCttn());//("交易主体总数")

        Element CATIsElement = HVTRElement.addElement("CATIs");
        

    while(iterator.hasNext()) { //CATI 循环

    fxqdejy = (FxqDejy)iterator.next();
           i=i+1;
         String stri =""+i;
         Element CATIElement = CATIsElement.addElement("CATI");
         CATIsElement.addElement("CATI");
        CATIElement.addAttribute("seqno", stri);
    Element CTIFElement = CATIElement.addElement("CTIF");
    Element CTNMElement = CTIFElement.addElement("CTNM");
    CTNMElement.setText(new String(fxqdejy.getCtnm().getBytes("cp850")));//("客户名称")
    Element CITPElement = CTIFElement.addElement("CITP");
    CITPElement.setText(fxqdejy.getCitp());  //"客户身份证件类型"
    Element CTIDElement = CTIFElement.addElement("CTID");
    CTIDElement.setText(fxqdejy.getCsnm()); //"客户证件号码"
    Element CSNMElement = CTIFElement.addElement("CSNM");
    CSNMElement.setText(fxqdejy.getCsnm()); //"客户号"
    Element CTNTElement = CTIFElement.addElement("CTNT");
    CTNTElement.setText(fxqdejy.getCtnt()); //"客户国籍"
       
    }
         
     
    Element HTDTElement = CATIElement.addElement("HTDT");
    HTDTElement.setText(fxqdejy.getHtdt());//"大额交易发生日期"
     
    Element HTCRsElement = CATIElement.addElement("HTCRs");
    Element HTCRElement = HTCRsElement.addElement("HTCR");
    HTCRElement.addAttribute("seqno", "1");
    Element CRCDElement = HTCRElement.addElement("CRCD");
    CRCDElement.setText(fxqdejy.getCrcd()); //("大额交易特征代码")
    Element TTNMElement = HTCRElement.addElement("TTNM");
    TTNMElement.setText(fxqdejy.getTtnm()); //"交易总数"
    Element TSDTsElement = HTCRElement.addElement("TSDTs");
      

  2.   




    Element TSDTElement = TSDTsElement.addElement("TSDT");
    TSDTElement.addAttribute("seqno", "1");
    Element RINIElement = TSDTElement.addElement("RINI");
    Element FINNElement = RINIElement.addElement("FINN");
    FINNElement.setText(new String(fxqdejy.getFinn().getBytes("cp850")));//"金融机构网点名称"
    Element FIRCElement = RINIElement.addElement("FIRC");
    FIRCElement.setText(fxqdejy.getFirc()); //"金融机构所在地区行政区划代码"
    Element RLTPElement = RINIElement.addElement("RLTP");
    RLTPElement.setText(fxqdejy.getRltp()); //"金融机构与大额交易的关系"
    Element FICTElement = RINIElement.addElement("FICT");
    FICTElement.setText(fxqdejy.getFict()); //"金融机构网点代码类型"
    Element FINCElement = RINIElement.addElement("FINC");
    FINCElement.setText(fxqdejy.getFinc()); //"金融机构网点代码"
    Element CATPElement = RINIElement.addElement("CATP");
    CATPElement.setText(fxqdejy.getCatp()); //"账户类型"
    Element CTACElement = RINIElement.addElement("CTAC");
    CTACElement.setText(fxqdejy.getCtac());  //"账户"

    Element TBIFElement = TSDTElement.addElement("TBIF");
    Element TBNMElement = TBIFElement.addElement("TBNM");
    TBNMElement.setText(new String(fxqdejy.getTbnm().getBytes("cp850")));  //"交易代办人姓名"
    Element TBITElement = TBIFElement.addElement("TBIT");
    TBITElement.setText(fxqdejy.getTbit());  //"代办人身份证件类型"
    Element TBIDElement = TBIFElement.addElement("TBID");
    TBIDElement.setText(fxqdejy.getTbid());  //"交易代办人身份证件号码"
    Element TBNTElement = TBIFElement.addElement("TBNT");
    TBNTElement.setText(fxqdejy.getTbnt());  //"代办人国籍"

    Element TSIFElement = TSDTElement.addElement("TSIF");
    Element TSTMElement = TSIFElement.addElement("TSTM");
    TSTMElement.setText(fxqdejy.getTstm()); //"交易时间"
    Element TICDElement = TSIFElement.addElement("TICD");
    TICDElement.setText(fxqdejy.getTicd()); //"业务标示号"
    Element TSTPElement = TSIFElement.addElement("TSTP");
    TSTPElement.setText(fxqdejy.getTstp());  //"交易方式"
    Element TSCTElement = TSIFElement.addElement("TSCT");
    TSCTElement.setText(fxqdejy.getTsct());  //"涉外收支交易分类与代码"
    Element TSDRElement = TSIFElement.addElement("TSDR");
    TSDRElement.setText(fxqdejy.getTsdr());  //"资金收付标识"
    Element TDRCElement = TSIFElement.addElement("TDRC");
    TDRCElement.setText("fxqdejy.getTdrc()");  //"交易去向"
    Element TRCDElement = TSIFElement.addElement("TRCD");
    TRCDElement.setText("fxqdejy.getTrcd()");  //"交易发生地"
    Element CRPPElement = TSIFElement.addElement("CRPP");
    CRPPElement.setText("fxqdejy.getCrpp()");  //"资金用途"
    Element CRTPElement = TSIFElement.addElement("CRTP");
    CRTPElement.setText(fxqdejy.getCrtp());  //"币种"
    Element CRATElement = TSIFElement.addElement("CRAT");
    CRATElement.setText(fxqdejy.getCrat());  //"交易金额"

    Element TCIFElement = TSDTElement.addElement("TCIF");
    Element CFINElement = TCIFElement.addElement("CFIN");
    CFINElement.setText(new String(fxqdejy.getCfin().getBytes("cp850")));  //"对方金融机构网点名称"
    Element CFCTElement = TCIFElement.addElement("CFCT");
    CFCTElement.setText(fxqdejy.getCfct()); // "对方金融机构代码类型"
    Element CFICElement = TCIFElement.addElement("CFIC");
    CFICElement.setText(fxqdejy.getCfic()); //"对方金融机构网点代码"
    Element TCNMElement = TCIFElement.addElement("TCNM");
    TCNMElement.setText("new String(fxqdejy.getTcnm().getBytes())");  //"交易对手姓名"
    Element TCITElement = TCIFElement.addElement("TCIT");
    TCITElement.setText(fxqdejy.getTcit()); //"交易对手证件类型"
    Element TCIDElement = TCIFElement.addElement("TCID");
    TCIDElement.setText(fxqdejy.getTcid());  //"交易对手证件号码"
    Element TCATElement = TCIFElement.addElement("TCAT");
    TCATElement.setText(fxqdejy.getTcat());  //"交易对手账号类型"
    Element TCACElement = TCIFElement.addElement("TCAC");
    TCACElement.setText("fxqdejy.getTcac()");  //"交易对手账号"



    try{
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding("gb18030");
    XMLWriter writer = new XMLWriter(os,format);
    writer.write(document);
    writer.close();
    os.close();
    faxnum=faxnumdao.findFxqNum("101"); //更新导出文件的序号
    faxnum.setNums(faxnum.getNums()+1);
    faxnumdao.updateFxqNum(faxnum);
    return "success";
    }catch(Exception e ){
    e.printStackTrace();
     }
    return returnvalue;
    }


    /*public int formatXMLFile(String filename){

    int returnValue = 1;
    try{
    SAXReader saxreader = new SAXReader();
    Document document = saxreader.read(new File(filename));
    XMLWriter output = null;
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding("GBK");
    output = new XMLWriter(new FileWriter(new File(filename)),format);
    output.write(document);
    output.close();
    returnValue = 1;
    }catch(Exception e){
    e.printStackTrace();
     }


    return returnValue;
    }*/



    /*public static void main(String[] args) {
    CreateXml createXml = new CreateXml();
    OutputStream os = null;
    System.out.println(createXml.createDaeXMLFile(os));
    //System.out.println(createXml.formatXMLFile("c:/xmltest.xml")); }*/}