参考:

https://blog.csdn.net/LookForDream_/article/details/88884316

https://zhuchengzzcc.iteye.com/blog/1838702

核心代码

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import dns.rsdnscount.entity.SlaveEntity;
import dns.rsdnscount.entity.SlavesEntity;
public class XmlUtils {private static Logger logger = LoggerFactory.getLogger(XmlUtils.class);public static void main(String[] args) {
/*        SlavesEntity list=new SlavesEntity();SlaveEntity ent=new SlaveEntity();ent.setHost("master");ent.setPort("3306");ent.setUserName("user1");ent.setRemoteResultPath("/home/user");list.getEntitys().add(ent);SlaveEntity ent2=new SlaveEntity();ent2.setHost("master2");ent2.setPort("3306");ent2.setUserName("user2");ent2.setRemoteResultPath("/home/user2");list.getEntitys().add(ent2);String xxx=convertToXml(list,"utf-8",true);System.out.println(xxx);*/try {SlavesEntity ents=convertToJava(new File("conf/slaves.xml"), SlavesEntity.class);for (SlaveEntity ent : ents.getEntityList()) {System.out.println(ent);}} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}/*** JavaBean转换成xml* * @param obj* @param encoding* @return*/public static String convertToXml(Object obj, String encoding, boolean format) {String result = null;StringWriter writer = null;try {JAXBContext context = JAXBContext.newInstance(obj.getClass());Marshaller marshaller = context.createMarshaller();marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, format);marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);writer = new StringWriter();marshaller.marshal(obj, writer);result = writer.toString();} catch (Exception e) {logger.error(e.getMessage(), e);} finally {if (writer != null){try {writer.close();} catch (IOException e) {e.printStackTrace();}}}return result;}/*** xml转换成JavaBean* * @param xml* @param c* @return*/@SuppressWarnings("unchecked")public static <T> T convertToJava(String xml, Class<T> c) {if (xml == null || xml.equals(""))return null;T t = null;StringReader reader = null;try {JAXBContext context = JAXBContext.newInstance(c);Unmarshaller unmarshaller = context.createUnmarshaller();reader = new StringReader(xml);t = (T) unmarshaller.unmarshal(reader);} catch (Exception e) {logger.error(e.getMessage(), e);} finally {if (reader != null)reader.close();}return t;}@SuppressWarnings("unchecked")public static <T> T convertToJava(File filePath, Class<T> c) throws IOException {if (!filePath.exists())return null;T t = null;FileReader reader = null;try {JAXBContext context = JAXBContext.newInstance(c);Unmarshaller unmarshaller = context.createUnmarshaller();reader = new FileReader(filePath);t = (T) unmarshaller.unmarshal(reader);} catch (Exception e) {logger.error(e.getMessage(), e);} finally {if (reader != null)reader.close();}return t;}
}

实体类

import java.util.LinkedList;import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="slavesList")
public class SlavesEntity{@XmlElementWrapper(required=true,name="entitys")@XmlElement(name="entity")LinkedList<SlaveEntity> entityList=new LinkedList<SlaveEntity>();public LinkedList<SlaveEntity> getEntityList() {return entityList;}public void setEntityList(LinkedList<SlaveEntity> entityList) {this.entityList = entityList;}}
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = {   "host",  "port", "userName",   "remoteResultPath",
})
public class SlaveEntity {String host;String userName;String port;@XmlElement(required=false,name="remoteResultPath")String remoteResultPath;public String getHost() {return host;}public void setHost(String host) {this.host = host;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPort() {return port;}public void setPort(String port) {this.port = port;}public String getRemoteResultPath() {return remoteResultPath;}public void setRemoteResultPath(String remoteResultPath) {this.remoteResultPath = remoteResultPath;}@Overridepublic String toString() {return "SlaveEntity [host=" + host + ", userName=" + userName + ", port=" + port + ", remoteResultPath="+ remoteResultPath + "]";}
}

转载于:https://www.cnblogs.com/yanghaolie/p/11110991.html

java实体 和 xml相互转换相关推荐

  1. java实体在xml和json之间相互转换

    在我们Java开发 接口调试过程中 经常会遇到  实体转换长json.xml 或者json 转换成实体.xml 等多种情况,今天博主给大家详细举例: 1.原生实体与json 相互转换: User us ...

  2. Java对象与XML、Excel、TXT文件相互转换

    一.目的 文件的存储与导出java对象,文件格式包括xml.txt.xlxs三种文件格式 二.准备 Student 类 /*** 学生的信息(学号.姓名.电话.邮箱信息)** @ClassName S ...

  3. c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)

    我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...

  4. 复杂的xml转化为java实体

    一.样例一: 以根据订单号向支付宝查询支付是否成功为例(成功信息) 失败信息: <?xml version="1.0" encoding="utf-8"? ...

  5. ibatis学习笔记(三)java实体跟表映射.xml文件详解

    在项目中使用Ibatis难免会使用到java实体跟表映射.xml. <?xml version="1.0" encoding="UTF-8" ?> ...

  6. C#实现实体类和XML相互转换

    一.实体类转换成XML 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T& ...

  7. mybatis mapper.xml数据库映射生成java实体,增删改查sql语句

    1.问题描述:使用mybatis生成mapper.xml文件的时候经常遇到数据库表字段很多,写mapper.xml文件时转化成java实体很麻烦,写增删改查的sql时也要做 很多重复的工作.程序员就想 ...

  8. Xml转Java实体类对象 xml转Javabena 对象 且多级嵌套 复杂嵌套

    最近在做企微开发,遇到了一个比较复杂的xml然后要去我将xml转成实体类 xml如下 <xml><ToUserName><![CDATA[toUser]]>< ...

  9. JAXB处理java对象与xml格式之间的转换

    JAXB(Java Architecture for XML Binding)是J2SE和J2EE平台的一部分,让开发者能够快速完成Java类和XML的互相映射.一些具体的介绍和使用可以到此细看:JA ...

最新文章

  1. illegal escape character in String literal
  2. javascript中处理时间戳为日期格式的方法
  3. 文巾解题 283. 移动零
  4. 边记边学PHP-(十五)MySQL数据库基础操作2
  5. SQLite在指定列后面插入字段_个人学习系列 - 防止MySQL重复插入数据
  6. Mr.J--JS事件监听(捕获冒泡)
  7. win32——消息循环 原理 函数 GetMessage PeekMessage TranslateMessage SendMessage PostMessage...
  8. 8 适用于 Keras 用户的 TensorFlow.js 层 API
  9. ACCESS数据库C#操作类(SQLHELPER修改版)——转自网上
  10. 14个非常棒的 JavaScript 游戏开发框架推荐
  11. 国民经济行业分类 GB/T 4754-2017 最新2017版 代码整理
  12. HTTP下载龙卷风系列Office/Photoshop/金山词霸快译/
  13. win10系统对计算机要求,Win10系统对电脑配置要求 win10专业版教程
  14. Python面试简历工作描述写法总结
  15. 网易有道能否异军突起—网易押宝
  16. Kubernetes切换Docker容器引擎为Containerd
  17. 软件规模估算常用的5种方法及实用工具。
  18. 仅需简单的文字描述,即可把文字转图片
  19. Python实现淘宝爬取——奶粉销售信息爬取及其数据可视化
  20. 深度学习之NIN模型结构全解析

热门文章

  1. 122. Best Time to Buy and Sell Stock II
  2. 一些杂感杂想(一)谈谈加班、团队
  3. How run Powershell ISE on WIndows Server2008
  4. entity、model和domain三者区别
  5. 传说中的CAFEBABE到底在哪儿?
  6. 是什么影响了MySQL性能?
  7. GitHub 上万 star 项目大佬的自谦:一个学渣的阿里之路
  8. Redis:常见的面试题
  9. Java 中静态代码块 static的作用及用法
  10. org.hibernate.transientobjectexception:The given object has a null identifier: com.gxuwz.check.entit