xmlToEntity or entityToXML 工作笔记
最近工作中调用接口,返回报文是String,取值不方便,需要转换为实体,回来自己简单写了个demo,基本上可以满足工作需求。
除了下面代码外,还要创建对应的实体。
package yh.test.t1113; import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.io.*;
import java.util.Date; /**
* Created by vincce on 2015/11/13.
*/
public class Test1113 { Logger logger = LoggerFactory.getLogger(Test1113.class); public static User user(){
User user = new User();
user.setUserId("");
user.setUserName("jack");
user.setUserAge("");
user.setUserSex("male");
user.setEmail("3598649001@qq.com");
user.setCreateTime(new Date());
return user;
} public static void main(String[] args) { /**entity to xml*/
// xmlToEntity(user());
/** xml to entity*/
entityToXML(readLocalText());
/**read local file*/
// readLocalText();
} /**
* 转换器util
* @param user
* @return
*/
public static XStream ConvertUtil(User user) { System.out.println("------------开始调用转换器 ConvertUtil------------"); XStream xStream = new XStream(new DomDriver("GBK")); xStream.alias("user", User.class); xStream.aliasField("userId", User.class, "userId");
xStream.aliasField("userName", User.class, "userName");
xStream.aliasField("userSex", User.class, "userSex");
xStream.aliasField("userAge", User.class, "userAge");
xStream.aliasField("email", User.class, "email");
xStream.aliasField("createTime", User.class, "createTime"); return xStream;
} /**
* entity to xml
* @return
*/
public static String xmlToEntity(User user) {
String xml = ConvertUtil(user).toXML(user);
System.out.println("---------开始输出xml---------");
System.out.println(xml);
System.out.println("---------输出xml结束---------");
return xml;
} /**
* xml to entity
* @param strXML 字符串
* @return
*/
public static User entityToXML(String strXML){
User user = (User)ConvertUtil(null).fromXML(strXML,new User());
System.out.println("------------开始转换为实体------------");
System.out.println(user.toString());
System.out.println(user.getUserAge());
System.out.println("------------实体转换结束------------");
return user;
} /**
* 读取本地 xml 文件
* @return
*/
public static String readLocalText(){
StringBuffer stringBuffer = new StringBuffer();
String str = null;
String filePath="E:\\study\\test\\userXML.txt";
System.out.println("------------开始读取本地xml文件------------文件路径"+filePath); File file = new File(filePath); InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
if(file.exists() && file.isFile()){
try {
inputStreamReader = new InputStreamReader(new FileInputStream(file));
bufferedReader = new BufferedReader(inputStreamReader);
while ((str = bufferedReader.readLine()) != null){
stringBuffer.append(str);
}
System.out.println("------------开始输出stringBuffer------------");
System.out.println(stringBuffer); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(inputStreamReader != null){
try {
inputStreamReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}else {
System.out.println("指定目录下的文件找不到!");
}
System.out.println("------------本地文件输出成功------------");
return stringBuffer.toString();
} }
xmlToEntity or entityToXML 工作笔记的更多相关文章
- 2016年第2周读书笔记与工作笔记 scrollIntoView()与datalist元素
这一周主要是看了html5网页开发实例与javascript 高级程序设计,供以后翻阅查找. html5网页开发实例第1章与第二章的2.1部分: 第1章内容: html5在w3c的发展史. 浏览器的 ...
- javascript - 工作笔记 (事件四)
在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装, JavaScript Code 12345 yx.bind(item, "click&quo ...
- 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境
上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...
- Sencha Touch2 工作笔记
Sencha Touch2 工作笔记 Ext.dataview.List activate( this, newActiveItem, oldActiveItem, eOpts ) Fires whe ...
- 工作笔记5.JAVA图片验证码
本文主要内容为:利用JAVA图片制作验证码. 设计思路: 1.拷贝AuthImageServlet.class图片验证码 2.配置web.xml 3.JSP中,调用封装好的AuthImageServl ...
- 读书笔记——《MySQL DBA 工作笔记》
关于前言 作者在前言中提出的一些观点很具有参考价值, 梳理完整的知识体系 这是每一个技术流都应该追逐的,完整的知识体系能够使我们对知识的掌握更加全面,而不仅仅局限于点 建立技术连接的思维,面对需求,永 ...
- 《工作笔记:移动web页面前端开发总结》
工作笔记:移动web页面前端开发总结 移动web在当今的发展速度是一日千里,作为移动领域的门外汉,在这段时间的接触后,发现前端开发这一块做一个小小的总结. 1.四大浏览器内核 1.Trident (I ...
- 【工作笔记】BAT批处理学习笔记与示例
BAT批处理学习笔记 一.批注里定义:批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD,这些命令统称批处理命令. 二.常见的批处理指令: 命令清单: 1.RE ...
- oracle 工作笔记,不定期更新
此博客为工作时,所见技术问题的解决方案笔记,欢迎大家转载,转载请注明出处,谢谢~ 更新时间: 2017-07-12 1. clob字段值读取时,借用extractvalue或extract函数读取节点 ...
随机推荐
- vs2017秘钥
VS2017专业版和企业版激活密钥 需要的请自取- Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Professional: KBJFW-NXHK6-W4WJM- ...
- Debian9安装MariaDB
一:导入密钥并添加了存储库 sudo apt-get install software-properties-common dirmngr sudo apt-key adv --recv-keys - ...
- Swoole RPC 的实现
目录 概述 实现效果 代码 小结 概述 这是关于 Swoole 学习的第七篇文章:Swoole RPC 的实现. 第六篇:Swoole 整合成一个小框架 第五篇:Swoole 多协议 多端口 的应用 ...
- Ubuntu 16.04下使用Wine安装Xshell 4和Xftp 4
说明: 1.使用的Wine版本是深度出品(Deepin),已经精简了很多没用的配置,使启动能非常快,占用资源小. 2.由于Xshell 5的C++库无法在这个Wine版本运行,即使升级官方原版的2+版 ...
- UIAlertView弹出视图动画效果
在App设计中为了加强用户体验,我们会常常加入一些友好的动画效果.比如类似UIAlertView弹出的动画效果,由于系统中并没有直接提供类似的动画API,如果我们想要做出一样的效果,那就得深入的研究一 ...
- 第六讲_图像分割Image Segmentation
第六讲_图像分割Image Segmentation 语义分割(semantic segmentation) 常用神经网络介绍对比-FCN SegNet U-net DeconvNet 目录 +三大数 ...
- 最好的10个移动 Web 应用程序开发框架
在近期几年里,移动互联网快速发展.市场潜力巨大. 继计算机.互联网之后,移动互联网正掀起第三次信息技术革命的浪潮,新技术.新应用不断涌现.今天这篇文章向大家推荐10大优秀的移动Web开发框架.帮助开发 ...
- Linux退出时出现there are stopped jobs如何解决?
Linux 使用exit时出现there are stopped jobs如何解决? 这是因为一些命令被挂起了, 在后台驻留,需要关闭. 解决问题: 输入命令jobs -l显示停止进程的详细列表 可以 ...
- Spring MVC传值乱码解决
在web.xml中进行配置,加入以下代码: <!-- 乱码解决 --> <filter> <filter-name>characterEncodingFilter& ...
- 为Redmine的项目加上起止时间
没有时间约束的项目不是好项目. 要给项目配置起止时间,须要用到自己定义属性. 我们须要管理员身份登录.才干够定义自己定义属性. 自己定义属性 看图吧,先是点击页面导航条(最上面那排菜单,有主页.我的工 ...