java xml 字符串转对象_java读取xml文件并转换成对象,并进行修改
1.首先要写工具类,处理读取和写入xml文件使用的工具。XMLUtil.java
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
/**
* 封装了XML转换成object,object转换成XML的代码
*
* @author mscall
*
*/
public class XMLUtil {
/**
* 将对象直接转换成String类型的 XML输出
*
* @param obj
* @return
*/
public static String convertToXml(Object obj) {
// 创建输出流
StringWriter sw = new StringWriter();
try {
// 利用jdk中自带的转换类实现
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
// 格式化xml输出的格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
// 将对象转换成输出流形式的xml
marshaller.marshal(obj, sw);
} catch (JAXBException e) {
e.printStackTrace();
}
return sw.toString();
}
/**
* 将对象根据路径写入指定的xml文件里
*
* @param obj
* @param path
* @return
*/
public static void convertToXml(Object obj, String path) {
try {
// 利用jdk中自带的转换类实现
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
// 格式化xml输出的格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "GBK");
// 将对象转换成输出流形式的xml
// 创建输出流
FileWriter fw = null;
try {
fw = new FileWriter(path);
} catch (IOException e) {
e.printStackTrace();
}
marshaller.marshal(obj, fw);
} catch (JAXBException e) {
e.printStackTrace();
}
}
/**
* 将String类型的xml转换成对象
*/
public static Object convertXmlStrToObject(Class> clazz, String xmlStr) {
Object xmlObject = null;
try {
JAXBContext context = JAXBContext.newInstance(clazz);
// 进行将Xml转成对象的核心接口
Unmarshaller unmarshal = context.createUnmarshaller();
StringReader sr = new StringReader(xmlStr);
xmlObject = unmarshal.unmarshal(sr);
} catch (Exception e) {
e.printStackTrace();
}
return xmlObject;
}
/**
* 将file类型的xml转换成对象
*/
public static Object convertXmlFileToObject(Class> clazz, String xmlPath) {
Object xmlObject = null;
try {
JAXBContext context = JAXBContext.newInstance(clazz);
Unmarshaller unmarshaller = context.createUnmarshaller();
InputStreamReader isr=new InputStreamReader(new FileInputStream(xmlPath),"GBK");
xmlObject = unmarshaller.unmarshal(isr);
} catch (Exception e) {
e.printStackTrace();
}
return xmlObject;
}
}
2.测试写入
public static void Tea(){
Tea tea = new Tea();
tea.set_unit(1);
tea.set_e("e1");
try {
XMLUtil.convertToXml(tea, "C:/XML/tea.xml");
} catch (Exception e1) {
e1.printStackTrace();
}
}
3.测试读
Tea tea = (Tea) XMLUtil.convertXmlFileToObject(Tea.class, "C:/XML/tea.xml");
java xml 字符串转对象_java读取xml文件并转换成对象,并进行修改相关推荐
- java xml文件内容替换_java读取xml文件并转换成对象,并进行修改
1.首先要写工具类,处理读取和写入xml文件使用的工具.XMLUtil.java importjava.io.FileInputStream;importjava.io.FileWriter;impo ...
- java object 转实体类_JAVA怎么把object怎么转换成实体类
2 第二步调:编写测试代码-利用net.sf.json.JSONObject进行转换. 2.1.起首成立一个实体类Student set和get本身生当作 public class Student { ...
- python读取nc文件并转换成csv_使用Python截取nc文件数据保存到CSV文件-Go语言中文社区...
问题要求: 编写一个函数完成以下任务:截取经度在23°N-40°N,纬度在118°E-131°E范围内各属性不同深度的数据,使用Python中合适的数据结构将截取的数据保存到同名CSV文件中.(nc文 ...
- 使用python(pydicom)读取Dicom文件并且转换成png
这篇主要讲怎么处理dicom格式的医学影像文件,并且转换成png,这样利于我们对图像进行处理. pydicom 目前取代了17年前的dicom库,更加的便捷 导入需要的模块,如果没安装,都可以用pip ...
- python读取pdf文件并转换成txt文件
将pdf文件转换成txt文件 官网 文档 中英文pdf都可以,而且处理速度很快,一秒可以处理10页左右 python2: pip install pdfminer python3: pip insta ...
- java txt 写入pdf_java学习笔记 读取pdf文件并写成txt文件输出
1.用到的jar有:pdfbox-1.8.4.jar ,fontbox-1.8.4.jar ,pdfbox-app-1.8.4.jar , preflight-1.8.4.jar,preflight- ...
- python读取nc文件并转换成csv_如何使用Python读取NetCDF文件并写入CSV
我的目标是从netcdf文件访问数据并以下列格式写入CSV文件. Latitude Longitude Date1 Date2 Date3 100 200 到目前为止,我已经访问了变量,将标题写入文件 ...
- python读取nc文件并转换成csv_python3使用类型转换读取csv文件
我有两个问题: a)Python csv模块无法正确处理特定csv文件 我在database.csv中有以下数据"AAAAAAAA" , 5.4817, 0.0000, 0.000 ...
- python读取nc文件并转换成csv_Python提取netCDF数据并转换为csv文件
netCDF全称是network Common Data Format(网络通用数据格式),是由美国大学大气研究协会(University Corporation for Atmospheric Re ...
最新文章
- 怎么安装MYSQL5.0的JDBC驱动
- 干货合集 | 带你深入浅出理解深度学习(附资源打包下载)
- 当上 CTO 才发现:程序员时常犯的 4 个错误有多可怕!
- 监控软件nagios之配置文件详解
- 【无标题】服务机器人---SLAM算法之gmapping
- 回溯java算法_聊聊算法——回溯算法
- Shell and powershell
- Jquery - jquery 插件,jQuery.Switchable
- 开关电源怎么测试文波_开关电源环路增益测试
- sm2算法前端处理_Postman接口自动化测试实例用到的完整的SM2前端加密算法代码...
- 学生成绩信息的增删改查 通过控制台实现
- 天天都在用的 Nginx,可你知道如何用一个反向代理实现多个不同类型的后端网站访问吗?...
- 禁止文本框输入空格和回车
- 知行之桥EDI系统30天试用导航
- perl脚本GET系统命令执行
- 【时间序列分析】01. 时间序列·平稳序列
- leaflet地图原理_Leaflet地图框架使用手册
- 运动目标检测算法ViBe原理学习
- 高德地图根据输入地址查询轨迹路线以及获取到所有的路线上的经纬度点
- java边界布局东南西北_第58节:Java中的图形界面编程-GUI
热门文章
- LeetCode之Find Eventual Safe States(Kotlin)
- jsp中EL表达式不好使
- Spring MVC 接收POST表单请求,获取参数总结
- 条款27:尽量少做转型动作
- php addall,thinkphp addall() 方法设置
- h5 input 阴影_html5中input表单加边框,阴影效果
- wps怎么做时间线_品牌锦囊 I 我想做企业宣传册,我的公司有很多业务线,怎么设计?...
- 确保河道环境_扮靓美丽河湖 | 河道保洁“神器”, 上线!
- linux账号密码登录,在自己的小linux上实现用户具有账号密码才可以登录
- 1235813找规律第100个数_每日一课:奥数知识点 —— 找简单数列的规律