第一次实现这个功能能,可能很多不足,暂时记录下来,
//拼接xml private void getXmlInfo(String handle) throws Exception { StringBuilder sb = new StringBuilder(); sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sb.append("<root xmlns=\"http://www.cdi.cn/handle\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"); sb.append("<ListRecords metedataStandard=\"20170306161400\">"); sb.append("<record>"); sb.append("<header>"); sb.append("<identifier>"+handle+"/"+fromhospital+"."+page+"</identifier>"); sb.append("<metadataOption>0</metadataOption>"); sb.append("<validity>-1</validity>"); sb.append("</header>"); sb.append("<metadata>"); if (name != null && !"".equals(name)) { sb.append("<name><value><![CDATA["+name+"]]></value></name>"); } if (sex != null && !"".equals(sex)) { sb.append("<sex><value><![CDATA["+sex+"]]></value></sex>"); } if (age != null && !"".equals(age)) { sb.append("<age><value><![CDATA["+age+"]]></value></age>"); } if (minzu != null && !"".equals(minzu)) { sb.append("<minzu><value><![CDATA["+minzu+"]]></value></minzu>"); } if (hunfou != null && !"".equals(hunfou)) { sb.append("<hunfou><value><![CDATA["+hunfou+"]]></value></hunfou>"); } if (chushengdi != null && !"".equals(chushengdi)) { sb.append("<chushengdi><value><![CDATA["+chushengdi+"]]></value></chushengdi>"); } if (zhiye != null && !"".equals(zhiye)) { sb.append("<zhiye><value><![CDATA["+zhiye+"]]></value></zhiye>"); } if (ruyuandate != null && !"".equals(ruyuandate)) { sb.append("<ruyuandate><value><![CDATA["+ruyuandate+"]]></value></ruyuandate>"); } if (jiludate != null && !"".equals(jiludate)) { sb.append("<jiludate><value><![CDATA["+jiludate+"]]></value></jiludate>"); } if (bingqingchenshu != null && !"".equals(bingqingchenshu)) { sb.append("<bingqingchenshu><value><![CDATA["+bingqingchenshu+"]]></value></bingqingchenshu>"); } if (zhusu != null && !"".equals(zhusu)) { sb.append("<zhusu><value><![CDATA["+zhusu+"]]></value></zhusu>"); } if (xianbingshi != null && !"".equals(xianbingshi)) { sb.append("<xianbingshi><value><![CDATA["+xianbingshi+"]]></value></xianbingshi>"); } if (jiwangshi != null && !"".equals(jiwangshi)) { sb.append("<jiwangshi><value><![CDATA["+jiwangshi+"]]></value></jiwangshi>"); } if (gerenshi != null && !"".equals(gerenshi)) { sb.append("<gerenshi><value><![CDATA["+gerenshi+"]]></value></gerenshi>"); } if (jiazushi != null && !"".equals(jiazushi)) { sb.append("<jiazushi><value><![CDATA["+jiazushi+"]]></value></jiazushi>"); } if (tigejiancha != null && !"".equals(tigejiancha)) { sb.append("<tigejiancha><value><![CDATA["+tigejiancha+"]]></value></tigejiancha>"); } if (zhuankeqingkuang != null && !"".equals(zhuankeqingkuang)) { sb.append("<zhuankeqingkuang><value><![CDATA["+zhuankeqingkuang+"]]></value></zhuankeqingkuang>"); } if (fuzhujiancha != null && !"".equals(fuzhujiancha)) { sb.append("<fuzhujiancha><value><![CDATA["+fuzhujiancha+"]]></value></fuzhujiancha>"); } if (chubuzhenduan != null && !"".equals(chubuzhenduan)) { sb.append("<chubuzhenduan><value><![CDATA["+chubuzhenduan+"]]></value></chubuzhenduan>"); } if (zuihouzhenduan != null && !"".equals(zuihouzhenduan)) { sb.append("<zuihouzhenduan><value><![CDATA["+zuihouzhenduan+"]]></value></zuihouzhenduan>"); } sb.append("</metadata>"); sb.append("</record>"); sb.append("</ListRecords>"); sb.append("</root>"); //声明ZipOutputStream,用来输出zip文件。 ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream("D://test1.zip")); //声明ZipEntry ZipEntry entry = new ZipEntry("test.xml"); //将entry加入到zipOut中。 zipOut.putNextEntry(entry); //利用DataOutputStream对ZipOutputStream进行包装。 DataOutputStream dataOs = new DataOutputStream(zipOut); //输出zip文件。 //dataOs.writeUTF(sb.toString());//一开始用这个方法,但是后导致我的程序报错,原因时用这个方法会在开始时多出来个字符,导致无法通过验证 dataOs.write(sb.toString().getBytes("utf-8")); //我们的xml要求编码格式utf-8,以前没有加上有时会报错,加上之后就好了,也不知道是不是这的原因,先记录下来 dataOs.close(); }