package com.demo.road.util;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class XMLUtil {
public static Map<String,String> reqMsg2Map(HttpServletRequest request){
String mxlstr=regXml2String(request);
Map<String,String> map=new HashMap<>();
try {
Document document= DocumentHelper.parseText(mxlstr);
Element root=document.getRootElement();
List<Element> eles=root.elements();
for(Element e:eles){
map.put(e.getName(),e.getTextTrim());
}
return map;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 解析request中的xml为string
* @param request
* @return
*/
public static String regXml2String(HttpServletRequest request){
try {
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(request.getInputStream()));
String str=null;
StringBuilder stringBuilder=new StringBuilder();
while ((str=bufferedReader.readLine())!=null){
stringBuilder.append(str);
}
return stringBuilder.toString();
} catch (IOException e) {
e.printStackTrace();
return e.getMessage();
}
}
/**
* map转换xml
* @param paramMap
* @return
*/
public static String map2Xml(Map<String,Object>paramMap){
Document document=DocumentHelper.createDocument();
Element root=document.addElement("xml");
Set<String>keys=paramMap.keySet();
for(String key:keys){
root.addElement(key).addText((String) paramMap.get(key));
}
StringWriter stringWriter=new StringWriter();
try {
document.write(stringWriter);
return stringWriter.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
/**
* (多层)map转换为xml格式字符串
*
* @param map 需要转换为xml的map
* @param isCDATA 是否加入CDATA标识符 true:加入 false:不加入
* @return xml字符串
*/
public static String multilayerMapToXml(Map<String, Object> map, boolean isCDATA){
String parentName = "xml";
Document doc = DocumentHelper.createDocument();
doc.addElement(parentName);
String xml = recursionMapToXml(doc.getRootElement(), parentName, map, isCDATA);
return formatXML(xml);
}
/**
* multilayerMapToXml核心方法,递归调用
*
* @param element 节点元素
* @param parentName 根元素属性名
* @param map 需要转换为xml的map
* @param isCDATA 是否加入CDATA标识符 true:加入 false:不加入
* @return xml字符串
*/
@SuppressWarnings("unchecked")
private static String recursionMapToXml(Element element, String parentName, Map<String, Object> map, boolean isCDATA) {
Element xmlElement = element.addElement(parentName);
map.keySet().forEach(key -> {
Object obj = map.get(key);
if (obj instanceof Map) {
recursionMapToXml(xmlElement, key, (Map<String, Object>)obj, isCDATA);
} else {
String value = obj == null ? "" : obj.toString();
if (isCDATA) {
xmlElement.addElement(key).addCDATA(value);
} else {
xmlElement.addElement(key).addText(value);
}
}
});
return xmlElement.asXML();
}
/**
* 格式化xml,显示为容易看的XML格式
*
* @param xml 需要格式化的xml字符串
* @return
*/
public static String formatXML(String xml) {
String requestXML = null;
try {
// 拿取解析器
SAXReader reader = new SAXReader();
Document document = reader.read(new StringReader(xml));
if (null != document) {
StringWriter stringWriter = new StringWriter();
// 格式化,每一级前的空格
OutputFormat format = new OutputFormat(" ", true);
// xml声明与内容是否添加空行
format.setNewLineAfterDeclaration(false);
// 是否设置xml声明头部
format.setSuppressDeclaration(false);
// 是否分行
format.setNewlines(true);
XMLWriter writer = new XMLWriter(stringWriter, format);
writer.write(document);
writer.flush();
writer.close();
requestXML = stringWriter.getBuffer().toString();
}
return requestXML;
} catch (Exception e) {
System.out.println("格式化失败");
return null;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
javaweb高速公路模拟ETC收费系统的设计与实现.rar(项目源码+毕业设计+数据库文件)sprin boot mysql
共788个文件
js:202个
xml:150个
gif:150个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 7 下载量 63 浏览量
2022-04-01
20:14:42
上传
评论 1
收藏 18.9MB RAR 举报
温馨提示
1 绪论 5 1.1 系统开发背景 5 1.2 系统开发意义 5 1.3项目主要的内容 5 2 系统开发工具介绍 6 2.1 JSP技术概述 6 2.2 JAVA语言 7 2.3 IDEA开发工具简介 7 2.4 MYSQL数据库 8 3 需求分析与设计 8 3.1 可行性分析 8 3.1.1技术可行性 9 3.1.2经济可行性 9 3.1.3操作可行性 9 3.2 系统功能分析 9 3.3 系统功能结构图 10 3.4 系统流程图 10 3.5 系统运行环境 11 3.6系统设计原则 11 4 数据库设计 13 4.1 数据库逻辑结构设计 13 4.2 数据表ER图设计 14 4.3 数据库物理结构设计 14 5 系统的详细设计与实现 16 1.1 登录模块的实现 16 1.2 操作员管理模块 17 1.3 黑名单车辆管理模块 18 1.4 收费管理模块 18 1.5 统计管理模块 19 5.6安装部署 20 6 系统测试 20 6.1 测试的目的 20 6.2 测试的步骤 21 6.3 测试的主要内容 21 结束语 24 参考文献 25 致 谢 25
资源推荐
资源详情
资源评论
收起资源包目录
javaweb高速公路模拟ETC收费系统的设计与实现.rar(项目源码+毕业设计+数据库文件)sprin boot mysql (788个子文件)
Document.class 13KB
XMLUtil.class 7KB
R.class 5KB
RouterController.class 4KB
User.class 4KB
RequestUtil.class 4KB
IndexController.class 4KB
Result.class 3KB
FeeService.class 3KB
FeeController.class 3KB
RecodeUtil.class 3KB
RouterService.class 3KB
UserService.class 3KB
OperatorService.class 3KB
BlackService.class 3KB
CheckoutUtil.class 2KB
UserController.class 2KB
OperatorController.class 2KB
HttpClientUtil.class 2KB
BlackController.class 2KB
RoadApplication.class 2KB
Error.class 2KB
MyInterceptor.class 1KB
OperatorDao.class 1KB
BlackDao.class 1KB
RouterDao.class 1KB
Password.class 1KB
DocumentType.class 1KB
FeeDao.class 1KB
WebMvcConfig.class 1KB
DateUtil.class 1KB
UserDao.class 953B
BaseEntity.class 722B
ApplicationTests.class 398B
ResultCode.class 232B
jquery-weui.css 68KB
jquery-weui.css 68KB
layui.css 68KB
layui.css 68KB
weui.min.css 50KB
weui.min.css 50KB
admin.css 21KB
admin.css 21KB
layim.css 15KB
layim.css 15KB
layer.css 14KB
layer.css 14KB
template.css 11KB
template.css 11KB
main.css 10KB
main.css 10KB
layui.mobile.css 10KB
layui.mobile.css 10KB
layim.css 9KB
layim.css 9KB
laydate.css 7KB
laydate.css 7KB
cropper.css 6KB
cropper.css 6KB
dropdown.css 5KB
dropdown.css 5KB
publish.css 3KB
publish.css 3KB
login.css 2KB
login.css 2KB
code.css 1KB
code.css 1KB
example1.css 953B
example1.css 953B
demos.css 637B
demos.css 637B
模拟ETC系统的设计与实现.docx 572KB
iconfont.eot 40KB
iconfont.eot 40KB
console.ftl 15KB
console.ftl 15KB
userList.ftl 13KB
userList.ftl 13KB
operatorList.ftl 12KB
operatorList.ftl 12KB
feeList.ftl 12KB
feeList.ftl 12KB
blackList.ftl 12KB
blackList.ftl 12KB
index.ftl 8KB
index.ftl 8KB
feeLayer.ftl 6KB
totalLayer.ftl 6KB
totalLayer.ftl 6KB
feeLayer.ftl 6KB
login.ftl 6KB
login.ftl 6KB
operatorLayer.ftl 6KB
operatorLayer.ftl 6KB
userLayer.ftl 5KB
userLayer.ftl 5KB
totalList.ftl 5KB
totalList.ftl 5KB
password.ftl 3KB
password.ftl 3KB
共 788 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
程序员小蛋
- 粉丝: 2432
- 资源: 481
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 聊天系统(java+applet).zip
- 毕业设计:基于SSM的mysql-高校学生请假管理系统(源码 + 数据库 + 说明文档)
- 博客系统(struts+hibernate+spring).rar
- c语言学生成绩管理系统源码.zip
- 毕业设计:基于SSM的mysql-网约车用户服务平台(源码 + 数据库 + 说明文档)
- 内容管理系统(hibernate3+struts2+spring2)130224.rar
- 基于Java的班级管理系统课程设计源码
- 内容管理系统(hibernate3+struts2+spring2).rar
- 路由器刷breed Web控制台助手v5.8版本.rar
- Java 在 JEP 12 提供的特性预览
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页