使用Marshaller 将Java对象转化为XML格式和字符串转为xml
使用Marshaller 将Java对象转化为XML格式
-
对象转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;} }
③效果图
- 字符串转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();}
相关文章:

使用Marshaller 将Java对象转化为XML格式和字符串转为xml
使用Marshaller 将Java对象转化为XML格式 对象转xml内容 ①工具类 public static String convertObjectToXml(Object obj) throws Exception {StringWriter writer new StringWriter();// 创建 JAXBContext 和 MarshallerJAXBContext context JAXBContext.newInstance(obj.ge…...
NumPy 秘籍中文第二版:八、质量保证
原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 “如果您对计算机撒谎,它将帮助您。” – Perry Farrar,ACM 通讯,第 28 卷 在本章中,我们将介绍以下秘籍: …...

[ 应急响应篇基础 ] 日志分析工具Log Parser配合login工具使用详解(附安装教程)
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

什么是MVVM?
MVVM 是 Model-View-ViewModel 的缩写,是M-V-VM三部分组成。它本质上就是MVC的改进版。 M:Model 代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。 V:View 代表视图UI,它负责将数据模型转化成UI 展现出来。…...
Java 企业电子招投标采购系统源码:采购过程更规范,更透明
满足采购业务全程数字化, 实现供应商管理、采购需求、全网寻源、全网比价、电子招 投标、合同订单执行的全过程管理。 电子招标采购,是指在网上寻源和采购产品和服务的过程。对于企业和企业主来说,这是个既省钱又能提高供应链效率的有效方法…...
1384:珍珠(bead)
1384:珍珠(bead) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 有n颗形状和大小都一致的珍珠,它们的重量都不相同。n为整数,所有的珍珠从1到n编号。你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量…...

34岁本科男,做了5年功能测试想转行,除了进厂还能干什么?
我的建议是不要给自己设限。任何一个行业只要做到顶尖都是很有作为的,何况是IT行业,本身就比别的行业有优势,如果你现在是功能测试,应该想的是进阶自动化测试或者测试开发 如何在半年时间由功能测试成长为年薪30W的测试开发&#…...

一文理解Transformer整套流程
【备注】部分图片引至他人博客,详情关注参考链接 【PS】query 、 key & value 的概念其实来源于推荐系统。基本原理是:给定一个 query,计算query 与 key 的相关性,然后根据query 与 key 的相关性去找到最合适的 value。举个例…...

04、SpringBoot运维实用篇
一、配置文件1、临时属性设置目前我们的程序包打好了,可以发布了。但是程序包打好以后,里面的配置都已经是固定的了,比如配置了服务器的端口是8080。如果我要启动项目,发现当前我的服务器上已经有应用启动起来并且占用了8080端口&…...

3.Java运算符
Java运算符 运算符基本分为六类:算数运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、三元(条件)运算符。 一、算术运算符 算数运算符,是指在Java运算中,计算数值类型的计算符号,既然是操作数值…...

《RockectMQ实战与原理解析》Chapter4-分布式消息队列的协调者
4.1 NameServer 的功能 NameServer 是整个消息队列中的状态服务器,集群的各个组件通过它来了解全局的信息 。 同时,各个角色的机器都要定期向 NameServer 上报自己的状态,超时不上报的话, NameServer 会认为某个机器出故障不可用了…...
Spring Boot 最适配的 UI 是什么
与Spring Boot一起使用的最佳 UI 是什么? 我经常碰到的一个常见问题是“与 Spring Boot 一起使用的最佳 UI 是什么?” UI,也称为“用户界面”,有许多不同的风格。 UI 应用程序可能是用 Java Swing、FX 或其他一些技术编写的桌面应…...

TensorFlow 1.x 深度学习秘籍:6~10
原文:TensorFlow 1.x Deep Learning Cookbook 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如…...

分布式场景下,Apache YARN、Google Kubernetes 如何解决资源管理问题?
所有的资源管理系统都需要解决资源的有效利用、任务的有效响应、调度策略的灵活配置这三个最基本问题。那么在分布式的场景下,YARN和Kubernetes是怎么解决的呢?本篇进行介绍。 — Apache YARN — YARN全称为(Yet Another Resource Negotiato…...

RK3399平台开发系列讲解(基础篇)POSIX 定时器
🚀返回专栏总目录 文章目录 一、clockid二、sigevent三、timerid四、flags五、 value & old_value六、POSIX 定时器的优势沉淀、分享、成长,让自己和他人都能有所收获!😄 📢为了克服传统定时器的局限性,POSIX 标准组织设计了新的计时器接口和规范,使它们能提供更…...
web小游戏开发:扫雷(三)(完成度90%)
web小游戏开发:扫雷(三) 实现布雷鼠标事件处理左键和右键单独实现实现递归展开追加地雷计数和时间计时小结书接前文啊,如果没看过前两篇的话,不好理解这里的定义了哦。 实现布雷 在之前两篇文章,我们已经把雷区布置好了,全部盖上了格子,现在我们需要把雷布出来,这就需…...

创建菜单栏、菜单、菜单项
1、QMainWindow窗口 1.1、创建菜单栏 this 代表的是 当前窗口(主窗口),也就是 当前窗口中添加/设置 菜单栏 this->resize(800,600); //创建 菜单栏 QMenuBar *menuBar new QMenuBar(this); //将菜单栏 添加到主窗口的特殊位置 this-&g…...

专访丨AWS量子网络中心科学家Antía Lamas谈量子计算
Anta Lamas Linares(图片来源:网络) 47岁的Anta Lamas Linares出生于西班牙西北部的圣地亚哥德孔波斯特拉。她在当地学习物理学,然后在牛津大学和加利福尼亚继续深造。后来,她在新加坡领导了亚马逊网络服务…...

[ 云计算 | Azure ] Chapter 04 | 核心体系结构之数据中心、区域与区域对、可用区和地理区域
本章节主要内容进行讲解:Azure云计算的核心体系结构组件中的:Azure物理基础设施(Physical infrastructure),区域(Regions)和区域对(Region Pairs)、地理数据中心…...

升级长江存储最新闪存,忆恒创源发布新一代企业级NVMe SSD
2023年4月11日 —— 北京忆恒创源科技股份有限公司(Memblaze)正式发布搭载高品质国产闪存的PBlaze6 6541 系列企业级PCIe 4.0 NVMe SSD。作为 MUFP 平台化开发的最新作品,PBlaze6 6541 采用长江存储最新一代晶栈 Xtacking 3D NAND,…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...

Linux基础开发工具——vim工具
文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…...
Java多线程实现之Runnable接口深度解析
Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...

理想汽车5月交付40856辆,同比增长16.7%
6月1日,理想汽车官方宣布,5月交付新车40856辆,同比增长16.7%。截至2025年5月31日,理想汽车历史累计交付量为1301531辆。 官方表示,理想L系列智能焕新版在5月正式发布,全系产品力有显著的提升,每…...