02.使用dom4j生成xml后, 不同的处理方式
来源:互联网 发布:sql二进制数据 计算符 编辑:程序博客网 时间:2024/06/05 02:32
package gov.mof.fasp.ifmis.acal.common.expxml;import gov.mof.framework.util.DateUtil;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.StringReader;import java.io.UnsupportedEncodingException;import java.math.BigDecimal;import java.text.DecimalFormat;import javax.servlet.http.HttpServletResponse;import oracle.sql.DATE;import org.dom4j.Document;import org.dom4j.io.OutputFormat;import org.dom4j.io.XMLWriter;public class ExpXmlUtil { /** * 构造方法设置为私有. */ private ExpXmlUtil() { super(); } /** * 导出凭证报文xml方法. * @param path -- * @param tmpname * @param columns * @param dataList * @return * @throws IOException */ public static String expExcelTemplate(String path, String tmpname,Document document, HttpServletResponse response) throws IOException { /* *第一种处理方式:xml文件保存到服务器 */// if (tmpname == null) {// tmpname = "";// }// if (path == null || "".equals(path)) {// path = new File("").getAbsolutePath();// path = path.replaceAll("\\\\", "/");// }// path += "/cal/impexp/expfilebak/";// File f = new File(path);// f.mkdirs();// String filename = tmpname + ".xml";// path += filename;// // 封装xml报文数据// OutputFormat format = OutputFormat.createPrettyPrint();// format.setEncoding("utf-8");// 设置XML文件的编码格式// format.setNewLineAfterDeclaration(false);//声明之后不换行// //format.setSuppressDeclaration(true);// 不输出头信息// format.setIndent(false); //设置是否缩进// //format.setIndent(" "); //以空格方式实现缩进// format.setNewlines(true); //设置是否换行// // XMLWriter writer = null;// try {// writer = new XMLWriter(new FileWriter(path), format);//写入指定的文件// writer.write(document);// } catch (IOException e) {// path="";// e.printStackTrace();// } finally {// try {// writer.close();// } catch (IOException e) {// e.printStackTrace();// }// }// return path; /* *第二种处理方式:返回页面xml格式 */ ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); format.setNewLineAfterDeclaration(false);//声明之后不换行 format.setNewlines(true); //设置是否换行 XMLWriter writer; try { writer = new XMLWriter(baos, format); writer.write(document); writer.flush(); writer.close(); String fileName = tmpname + DateUtil.getCurrentDateStr(DateUtil.C_DATA_PATTON_YYYYMMDD) + ".xml"; String dispositionHeader = "attachment;filename=" + new String(fileName.getBytes(), "iso8859-1"); // 发送中文文件名的响应头信息 response.setHeader("Content-Disposition", dispositionHeader); response.setHeader("Content-Type", "application/x-msdownload; charset=gbk"); OutputStream out = response.getOutputStream(); out.write(baos.toByteArray()); out.flush(); out.close(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } /* *第三种处理方式: 同上 */// InputStream fis = new ByteArrayInputStream(document.asXML().getBytes("utf-8")) ;// byte[] buffer = new byte[fis.available()];// fis.read(buffer);// fis.close();// response.reset();// // 先去掉文件名称中的空格,然后转换编码格式为utf-8,保证不出现乱码,这个文件名称用于浏览器的下载框中自动显示的文件名// response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.replaceAll(" ", "").getBytes(),"iso8859-1"));// OutputStream out = new BufferedOutputStream(response.getOutputStream());// response.setContentType("application/octet-stream");// out.write(buffer);// 输出文件// out.flush();// out.close(); return null; } /** * 格式化金额. * @param amt --金额 * @return */ public static String numFormat(String amt) { DecimalFormat df = new DecimalFormat("#0.00"); BigDecimal amtbd = new BigDecimal(amt); return df.format(amtbd); }}
阅读全文
0 0
- 02.使用dom4j生成xml后, 不同的处理方式
- 使用DOM4J方式生成XML文件的步骤如下:
- DOM4J方式生成xml文件
- JDOM和DOM4J解析含有XML字符串的不同方式
- 关于使用dom4j生成xml时特殊字符处理的解决方法
- 用dom4j的方式解析和生成xml文件
- 使用Dom4j生成xml文件
- 使用DOM4J生成解析XML
- 使用dom4j生成xml文件
- 使用Dom4j生成XML文件
- 使用dom4j生成xml报文
- 使用DOM4J方式解析XML
- Java——DOM4J方式生成XML
- Java DOM4J 方式生成XML文件
- C#中使用SQL语句生成DataTable,对不同的数据库,处理方式不同,返回的结果属性不同
- dom4j生成xml的问题
- maven中使用dom4j解析、生成XML的简易方法
- 使用dom4j读取xml文档的四种方式
- 深度学习框架tensorflow环境搭建
- 寄存器的装载和存储
- SSM+maven项目配置文件详解(一)
- 第七周项目四
- repo+git搭建
- 02.使用dom4j生成xml后, 不同的处理方式
- Netty 实现聊天功能
- 临时文本,草稿
- 【Scrapy】Scrapy在Python3下报错:“cannot import name '_win32stdio'”解决办法
- Scrapy爬取电商网站京东奶粉商品价格数据-附各种问题解决
- maven项目管理
- SQL Server 2008编程入门经典笔记:存储过程
- 第七周 【项目3
- error UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte