<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
使用document创建xml文件,并输出流
Document document = DocumentHelper.createDocument();
Element body = document.addElement("body");
Element head = body.addElement("head");
Element eye = head.addElement("eye");
eye.addText("眼睛");
Element hands = body.addElement("hands");
hands.addText("手");
OutputFormat format = OutputFormat.createPrettyPrint();
//format.setExpandEmptyElements(true);//把标签的自关闭变成双标签关闭
format.setEncoding("GBK");
format.setNewLineAfterDeclaration(false);//解决xml第二行空行
ByteArrayOutputStream out = new ByteArrayOutputStream();
OutputStream outputStream = null;
try {
response.setContentType("application/octet-stream");
response.setStatus(200);
outputStream = response.getOutputStream();
XMLWriter writer = new XMLWriter(out, format);
writer.write(document);
outputStream.write(out.toByteArray());
writer.close();
out.close();
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
前端接收
function submit() {
var dataForm = new FormData();
dataForm.append("1",$("#1").val());
dataForm.append("2",$("#2").val());
dataForm.append("4",$("#4").val());
const xhr = new XMLHttpRequest();
xhr.open('POST', "/exportXml", true);
xhr.responseType = "blob";
xhr.send(dataForm);
xhr.onload = () => {
if(xhr.status === 500){
alert("失败")
}
if (xhr.getResponseHeader("Content-type") === 'application/octet-stream') {
let url = window.URL.createObjectURL(xhr.response);
let a = document.createElement("a");
a.href = url;
a.style.display = 'none'
a.download = "导出.xml";
a.click();
window.URL.revokeObjectURL(url);
a.remove();
}
}