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函数读取节点 ...
随机推荐
- Codeforces 895E Eyes Closed(线段树)
题目链接 Eyes Closed 题意 两个人玩一个游戏,现在有两种操作: 1.两个人格子挑选一个区间,保证两个的区间不相交.在这两个区间里面各选出一个数,交换这两个数. 2.挑选一个区间,求这个 ...
- Codeforces 597B Restaurant(离散化 + 贪心)
题目链接 Restaurant 题目意思就是在$n$个区间内选出尽可能多的区间,使得这些区间互不相交. 我们先对这$n$个区间去重. 假如有两个区间$[l1, r1],[l2, r2]$ 若满足$l1 ...
- 关于udo3d双目相机的嵌入式板子系统重装
遇到的问题: 1.下载压缩文件(.rar):在linux下下载一会就会停止 原因:linux下不支持.rar文件的下载,在windows下载即可 2.在windows下解压文件,结果为镜像文件(.im ...
- HDU4372 Buildings
@(HDU)[Stirling數, 排列組合] Problem Description There are N buildings standing in a straight line in the ...
- iOS -- MBProgressHUB
高级: http://www.jianshu.com/p/485b8d75ccd4 //只有小菊花 - (void)indeterminateExample { // Show the HUD on ...
- python中a=a+2与a+=2的区别
1.a=a+2,表示一个新的对象,新的对象名字还是a,但是指向的内存地址已经变了 >>> a=2 >>> id(a) 140406287260016 >> ...
- VS中的 MD/MT设置 【转】
VS系列工具作为目前微软主打的集成开发环境,在历经了近20多年的发展后,到如今已经可以 说是Windows平台上各种IDE环境中的翘楚了.很多别的开发工具已经难望其项背了,如今VS2010也已经面市很 ...
- AngularJS的控制器示例
代码下载:https://files.cnblogs.com/files/xiandedanteng/angularjsCtrl.rar 代码: <!DOCTYPE HTML PUBLIC &q ...
- ARC forbids Objective-C objects in structs or unions
解决方法有二种: 1.在出错的地方加入__unsafe_unretained 2.关闭系统ARC.1.点击project 2.点击Build Setting 3.找到其以下的Objetive ...
- 百科知识 DMG文件如何打开
1 DMG格式是在MAC系统上的一个镜象文件,也可以说是压缩文件,如果你是使用苹果机或在PC上装了MAC OS X for X86,在MAC系统上双击这个文件就可以解开了:现在在Windows平台,我 ...