第一次实现这个功能能,可能很多不足,暂时记录下来,
//拼接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();
}