当前位置: 首页 > news >正文

使用Marshaller 将Java对象转化为XML格式和字符串转为xml

使用Marshaller 将Java对象转化为XML格式

  1. 对象转xml内容
    ①工具类

    public static String convertObjectToXml(Object obj) throws Exception {StringWriter writer = new StringWriter();// 创建 JAXBContext 和 MarshallerJAXBContext context = JAXBContext.newInstance(obj.getClass());Marshaller marshaller = context.createMarshaller();// 设置 Marshaller 属性// 指定是否使用换行和缩排对已编组 XML 数据进行格式化的属性名称marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 指定是否带有xml报文头marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");// 将 Java 对象转换成 XML 标签marshaller.marshal(obj, writer);return writer.toString();
    }
    

    ②嵌套对象

    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlRootElement;/*** Created with IntelliJ IDEA.** @Author: Administrator* @Date: 2023/04/17/13:32* @Description:*/@XmlRootElement(name = "WinResponse")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class WinResponse {private RowItem rowItem;public WinResponse() {}public WinResponse(RowItem rowItem) {this.rowItem = rowItem;}public RowItem getRowItem() {return rowItem;}public void setRowItem(RowItem rowItem) {this.rowItem = rowItem;}
    }	
    
    import javax.xml.bind.annotation.XmlRootElement;/*** Created with IntelliJ IDEA.** @Author: Administrator* @Date: 2023/04/17/13:32* @Description:*/
    @XmlRootElement
    public class RowItem {private String brlb;private String codetype;private String code;public RowItem() {}public RowItem(String brlb, String codetype, String code) {this.brlb = brlb;this.codetype = codetype;this.code = code;}public String getBrlb() {return brlb;}public void setBrlb(String brlb) {this.brlb = brlb;}public String getCodetype() {return codetype;}public void setCodetype(String codetype) {this.codetype = codetype;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}
    }
    

③效果图
在这里插入图片描述

  1. 字符串转xml标签
    /*** * @param value 标签内的值* @param xml 标签名称* @return* @throws Exception*/
    public static String convertStringToXml(String value, String xml) throws Exception {// 创建一个新的 XML 文档DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document doc = builder.newDocument();// 创建根元素Element rootElement = doc.createElement(xml);doc.appendChild(rootElement);// 创建子元素并设置文本内容rootElement.setTextContent(value);// 将 XML 文档转换为字符串TransformerFactory tfactory = TransformerFactory.newInstance();Transformer transformer = tfactory.newTransformer();transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");StringWriter writer = new StringWriter();transformer.transform(new DOMSource(doc), new StreamResult(writer));return writer.toString();}
    
http://www.lryc.cn/news/59522.html

相关文章:

  • NumPy 秘籍中文第二版:八、质量保证
  • [ 应急响应篇基础 ] 日志分析工具Log Parser配合login工具使用详解(附安装教程)
  • 什么是MVVM?
  • Java 企业电子招投标采购系统源码:采购过程更规范,更透明
  • 1384:珍珠(bead)
  • 34岁本科男,做了5年功能测试想转行,除了进厂还能干什么?
  • 一文理解Transformer整套流程
  • 04、SpringBoot运维实用篇
  • 3.Java运算符
  • 《RockectMQ实战与原理解析》Chapter4-分布式消息队列的协调者
  • Spring Boot 最适配的 UI 是什么
  • TensorFlow 1.x 深度学习秘籍:6~10
  • 分布式场景下,Apache YARN、Google Kubernetes 如何解决资源管理问题?
  • RK3399平台开发系列讲解(基础篇)POSIX 定时器
  • web小游戏开发:扫雷(三)(完成度90%)
  • 创建菜单栏、菜单、菜单项
  • 专访丨AWS量子网络中心科学家Antía Lamas谈量子计算
  • [ 云计算 | Azure ] Chapter 04 | 核心体系结构之数据中心、区域与区域对、可用区和地理区域
  • 升级长江存储最新闪存,忆恒创源发布新一代企业级NVMe SSD
  • Xcode14:”Failed to prepare the device for development“解决
  • 程序员的“灵魂笔记本“:五款高效笔记软件推荐
  • Linux基础命令-scp远程复制文件
  • 【python学习】基础篇-列表元素排序操作 sort()、min()、max()函数
  • 机器视觉检测系统的基本流程你知道吗
  • 【vue】Vue 开发技巧:
  • Kubebuilder Hello World
  • SpringSecurity之权限方案——用户认证
  • 本地电脑轻松部署GPT4(无需账号)!
  • 每天一道大厂SQL题【Day21】华泰证券真题实战(三)
  • 腾讯云8核16G18M轻量服务器CPU带宽流量性能测评