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);
}
}
相关推荐
开源 AHB不对称半桥反激电路设计(六)死区时间,谐振腔电流,谐振电感函数表达式
电流跌落可以使副边电流峰值和有效值降低,减小损耗,但如果开关管 S2 导通期间,谐振电流谐等于励磁电流,即副边电流A 点降至 0,会在原边变压器内形成环流,产生损耗,同时也不利于副边同步整流管驱动的正常工作,为了保证开关管 S2 导通期。在开关管 S1 和开关管 S2 均关断的死区时间内,谐振电流给原边开关管结电容和副边整流管结电容充放电,因此会引起开关 S1 关断瞬间电流跌落与开关 S2 关断瞬间电流震荡现象,受寄生参数影响原边谐振电流波形和副边电流波形如图。降到最低,变压器以最高效率向副边传递能量。
dom4j设置编码两种方法(一种不好使的原因)
1.设置编码失效,打开时为ANSI OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); format.setSuppressDeclaration(true); format.setIndent(true); //设置是否缩进 format.setIndent(" "...
海康威视摄像头CVE-2017-7921漏洞复现:从零到一的实战指南(含解密工具下载)
本文详细解析了海康威视摄像头CVE-2017-7921漏洞的技术原理与复现方法,提供从环境搭建到实战利用的完整指南。通过认证绕过漏洞,攻击者可获取敏感信息并执行高权限操作,文章还包含解密工具下载与防御建议,助力安全研究人员深入理解物联网设备安全风险。
JAVA 写入xml 去除头部
项目遇到的小问题记录: 这里使用的是 dom4j 在write时会自动写入一个表头<?xml version="1.0" encoding="UTF-8"?> 百度上很多说使用 document.getRootElement().asXML(); 发现不生效,最后在官方文档中找到可以设置转换参数OutputFormat /** * 写入xml * @param xmlPath xml文件地址 * @param document * @thr.
114.Android简单的动态切换app的图标,两种方式
- 默认的图标-->-- 需要切换的图标-->android:label="短信"-- 默认activity-->
5分钟搞定!用FunASR在本地快速部署达摩院Paraformer语音识别模型(附常见问题解决)
本文详细介绍了如何在本地快速部署阿里达摩院开源的Paraformer语音识别模型。通过FunASR工具包,用户可在5分钟内完成环境配置、模型下载与基础识别,并掌握批量处理、性能调优及构建API服务等进阶技巧。文章重点解析了Paraformer的非自回归架构带来的速度优势,并提供了音频格式转换、依赖冲突、显存不足等常见问题的实战解决方案,助力开发者实现高效、离线的语音转写应用。
dom4j中修改XML第一行 <?xml version = ....?>
在dom4j中,XML声明没有表示为单独的元素。相反,它是XML文档格式选项的一部分。要修改XML声明,您需要使用OutputFormat类。当然,还有更好的方法,比如自己写一个WriteXML类,这样生成的XML调整encoding样式会更方便。
BK3296蓝牙音频SoC深度评测:如何用这颗芯片打造超低功耗TWS耳机?
本文深度评测BK3296蓝牙音频SoC在TWS耳机中的应用,重点解析其22nm工艺带来的超低功耗优势(A2DP模式仅2.8mA)和3×3mm封装设计。通过芯片架构分析、双麦降噪调优及开发套件使用指南,为工程师提供打造高性能TWS耳机的完整解决方案,显著提升续航和音频质量。
格式化xml字符串,并生成xml文件
最近一段时间都在研究如何生成格式化的xml文件,查了好多资料,现在总结一下,希望对大家有帮助。 下面是格式化xml字符串工具类 前提是已经生成了xml字符串 [code="java"] package util; import java.io.StringReader; import java.io.StringWriter; import ...
视频倍速 - 在线调倍速的加速器APP工具
一刀工具箱APP提供一键可将手机上的视频倍速播放,可以调整视频倍速的加速器,调节视频的速度也就是调节视频的播放速度!一键可将手机上的视频倍速播放,可以调整视频倍速的加速器,调节视频的速度也就是调节视频的播放速度!视频倍速-在线调倍速的加速器-一刀工具箱APP。...
PSI5协议技术文档与驱动开发指南
• 供电与数据复用:ECU通过双绞线为传感器提供稳压(典型值5V-11V),同时检测线路电流变化实现数据传输。• 同步信号:ECU发送3.5V电压脉冲(上升沿触发传感器响应),用于时序同步。• 安全气囊:PSI5-P模式实现多碰撞传感器同步采样(响应时间<10ms)• CRC-3(3位):ASIL-B以上功能安全要求(如动力总成传感器)• 奇偶校验(1位):适用于低安全等级场景(如PSI5-P10P模式)• 典型应用:PSI5-P(并行总线)、PSI5-U(通用总线)
dom4j vs. jdom
dom4j jdom 创建 一般采用面向接口编程,Document、Element、Attribute等均为接口,要创建这些元素一般调用或委托DocumentFactory(单例)的工厂方法完成; 元素之间的关系可由工厂方法自动维护 Document、Element、Attribute等均为类,直接使用其构造器创建对象; 元素之间的关系需要编程维
手把手安装GNN必备库 —— pytorch_geometric
PyG全称是Pytorch Geometric,它是一个基于Pytorch构建的库,可以帮助用户快速构建和训练自己的图神经网络模型。PyG中实现了很多先进(state of the art)的GNN模块,例如GCN、GraphSage、GAT、SGC、GIN等等。此外,PyG中还包含了大量的benchmark图数据集、丰富的图数据操作方法、支持多GPU。
Dom4j框架解析XML
XML解析是指将XML格式数据转换成计算机程序能够理解的数据结构的过程。XML解析器可以将XML文件解析成DOM(文档对象模型)、SAX(简单API for XML)等不同的数据结构。通过对XML文件进行解析,程序可以读取和操作其中的数据,从而实现对XML文件的数据分析和处理。常用的XML解析库包括Java中的DOM解析器和SAX解析器,C++中的libxml2库和TinyXML库,Python中的ElementTree库和lxml库等。
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
xml的解析DOM,SAX,DOM4J
Dom和sax解析区别: 1.dom:(Document Object Model,文档对象模型) W3C组织推荐的一种处理方式 sax:(Simple API for XML)不是官方标准,但它是XML社区事实上的标准,几乎所有的XML解析 器都支持它。 2.使用Dom解析XML文档时,需要读取整个XML文档,在内存中架构架构代表整个DOM树的Document 对象,从而再对XML文
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
四种不同的XML解析方法
四种不同的XML解析方法: 1 DOM 工厂类:由抽象类javax.xml.parser.DocumentBuilderFactory.newInstance()获取实现工厂类 ACM工厂类: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl(ie3rdpartylibs.jar/META-INF/services/javax.xml.pa
使用dom4j操作XML
DOM4J介绍 DOM4J是使用Java语言编写的,用于读写及操作XML的一套组件,DOM4J同时具有DOM修改文件的优点和SAX读取快速的优点。 DOM4J的使用 首先下载dom4j的JAR包,我用的版本是1.6.1,下载地址:http://download.csdn.net/detail/onroads/9721574 使用方法《使用JDOM操作XML》...
xml解析
Java解析XML的四种方法详解 XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法 在做一般的XML数据交...
dom4j读取xml内容时丢失换行符
简单的换行,怎么这么麻烦……
Java进阶(五十一)XML 四种解析器(dom,sax,jdom,dom4j)原理及性能比较_java xml解析工具
dom是解析xml的底层接口之一(另一种是sax).而jdom和dom4j则是基于底层api的更高级封装。dom是通用的,具有跨语言、跨平台性,而jdom和dom4j则是面向java语言的。
XML -- 解析与写入(DOM4J)
一,dom4j方式XML文件写入 public boolean createXML() { XMLWriter writer = null; OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); Docume...
Java XML解析工具 dom4j介绍及使用实例
Java 有哪些优秀的类库及工具便于程序员对 XML 进行处理 ?大名鼎鼎的 DOM绿色环保的 SAX默默无闻的 Digester三种解析方式比较DOM优缺点:实现 W3C 标准,有多种编程语言支持这种解析方式,并且这种方法本身操作上简单快捷,十分易于初学者掌握。其处理方式是将 XML 整个作为类似树结构的方式读入内存中以便操作及解析,因此支持应用程序对 XML 数据的内容和结构进行修改,但是同时...
JAVA生成XML
DOM方式:package DomTest;import java.io.File; import java.io.IOException;import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigura
“用dom4j解析包”对xml进行dom方式操作--ReadXML
package edu.dom4j.dom; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import o
用dom4j处理XML文档(CRUD)
http://www.javaeye.com/topic/191564 (一)JDOM的介绍以及与JAXB的比较 Java + XML = JDOM ! 这就是JDOM设计者的目标。如果你曾经使用过烦人的SAX或是DOM来处理XML,你就会知道为什么要有JDOM或者是JAXB。在今年(2002)的JavaOne会议上JDOM的主要创始人Jason Hunter有一篇精彩的演讲介
dom4j操作xml基础
DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准,是以层次结构组织的节点或信息片断的集合,它总是把文档看成一个文档树,SAX处理能够立即开始,而不是等待所有的数据被处理,对于大型文档来说是个巨大的优点,JDOM无疑转为Java平台设计,它简化与XML的交互并且比使用DOM更快,但是它大量的试用具体类操作从而降低了操作的灵活性,dom4j代表了全新的开发结果,集成的XP...
1229



被折叠的 条评论
为什么被折叠?



