java xml文件内容替换_java读取xml文件并转换成对象,并进行修改

1.首先要写工具类,处理读取和写入xml文件使用的工具。XMLUtil.java

importjava.io.FileInputStream;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.StringReader;importjava.io.StringWriter;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.JAXBException;importjavax.xml.bind.Marshaller;importjavax.xml.bind.Unmarshaller;/*** 封装了XML转换成object,object转换成XML的代码

*

*@authormscall

**/

public classXMLUtil {/*** 将对象直接转换成String类型的 XML输出

*

*@paramobj

*@return

*/

public staticString convertToXml(Object obj) {//创建输出流

StringWriter sw= newStringWriter();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();

}returnsw.toString();

}/*** 将对象根据路径写入指定的xml文件里

*

*@paramobj

*@parampath

*@return

*/

public static voidconvertToXml(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= newFileWriter(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= newStringReader(xmlStr);

xmlObject=unmarshal.unmarshal(sr);

}catch(Exception e) {

e.printStackTrace();

}returnxmlObject;

}/*** 将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();

}returnxmlObject;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值