随心笔记,第六更

2024-06-13 13:28
文章标签 随心 笔记 第六

本文主要是介绍随心笔记,第六更,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、 三步构建 XML转成java bean

1.XML转XSD

2.XSD转JavaBean

 3.jaxb 工具类

4.测试

📢📢📢📣📣📣
哈喽!大家好,我是「Leen」。刚工作几年,想和大家一同进步🤝🤝
一位上进心十足的Java博主!😜😜😜
喜欢尝试一些新鲜的东西,平时比较喜欢研究一些新鲜技术和一些自己没有掌握的技术领域。能用程序解决的坚决不手动解决😜😜😜

目前已涉足Java、Python、数据库(MySQL、pgsql、MongoDB、Oracle...)、Linux、HTML、VUE、PHP、C(了解不多,主要是嵌入式编程方向做了一些)...(还在不断地学习,扩展自己的见识和技术领域中),希望可以和各位大佬们一起进步,共同学习🤝🤝

✨ 如果有对【Java】,或者喜欢看一些【实操笔记】感兴趣的【小可爱】,欢迎关注我

❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

今天给大家分享的是使用idea 将xml转为JavaBean并且取其中的数据和其他的数据进行交互,接下来直接上干货

一、 三步构建 XML转成java bean

1.XML转XSD

如果你是XSD的话,直接从 2 开始.

(1). 用idea打开xml文件,右击鼠标,选择 generate XSD from XML 如图

(2). 接下来是,选择自己想要的相关类型.如果想要生成的JavaBean属性和XML一致,记得选择Design type 为local elements type. 然后点击 OK 就可在当前文件夹生成了对应的XSD约束.

 

2.XSD转JavaBean

(1). 选中XSD,打开 并右键如下图,选中 generate javacode from XSD by JAXB

(新版idea用不了,可以用自己的idea试一下,我用2020前的试了一下是有的,2022的没有这个设置项)

 

如果idea没有这个功能的话,可以使用下面的命令进行转换

xjc -d "E:\\IdeaProjects\\test\\src\\main\\java\\com\\leen\\test\\test2024\\test605\\" -p com.leen.test.test2024.test605 "E:\\IdeaProjects\\test\\src\\main\\java\\com\\leen\\test\\test2024\\test605\\test.xsd"
#xjc -d 项目java文件夹 -p 包名 xsd文件名
#在xsd目录下执行,或者xsd文件名加上绝对路径

 3.jaxb 工具类

package com.leen.test.test2024.test605.utils;import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;
import java.io.StringWriter;
/*** Author:Leen* Date: 2024/6/5 0005 15:17*/public class JaxbUtil {/*** JavaBean转换成xml* 默认编码UTF-8* @param obj* @return*/public static String convertToXml(Object obj) {return convertToXml(obj, "UTF-8");}/*** JavaBean转换成xml* @param obj* @param encoding* @return*/public static String convertToXml(Object obj, String encoding) {String result = null;try {JAXBContext context = JAXBContext.newInstance(obj.getClass());Marshaller marshaller = context.createMarshaller();marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);StringWriter writer = new StringWriter();marshaller.marshal(obj, writer);result = writer.toString();} catch (Exception e) {e.printStackTrace();}return result;}/*** xml转换成JavaBean* @param xml* @param c* @return*/@SuppressWarnings("unchecked")public static <T> T converyToJavaBean(String xml, Class<T> c) {T t = null;try {JAXBContext context = JAXBContext.newInstance(c);Unmarshaller unmarshaller = context.createUnmarshaller();t = (T) unmarshaller.unmarshal(new StringReader(xml));} catch (Exception e) {e.printStackTrace();}return t;}
}

4.测试

package com.leen.test.test2024.test605;import com.leen.test.test2024.test605.utils.JaxbUtil;
import com.leen.test.test2024.test605.xmlFour.Bookstore;
import com.leen.test.test2024.test605.xmlOne.CAR;
import com.leen.test.test2024.test605.xmlOne.GATHERINFO;
import com.leen.test.test2024.test605.xmlTwo.COMMANDINFO;/*** Author:Leen* Date: 2024/6/5 0005 15:18*/
public class Test605 {public static void main(String[] args) {String xmlTest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +"<bookstore>\n" +"    <book category=\"children\">\n" +"        <title lang=\"en\">Harry Potter</title>\n" +"        <author>J.K. Rowling</author>\n" +"        <year>2005</year>\n" +"        <price>29.99</price>\n" +"    </book>\n" +"    <book category=\"web\">\n" +"        <title lang=\"en\">Learning XML</title>\n" +"        <author>Erik T. Ray</author>\n" +"        <year>2003</year>\n" +"        <price>39.95</price>\n" +"    </book>\n" +"    <book category=\"cooking\">\n" +"        <title lang=\"en\">Everyday Italian</title>\n" +"        <author>Giada De Laurentiis</author>\n" +"        <year>2005</year>\n" +"        <price>30.00</price>\n" +"    </book>\n" +"    <book category=\"children\">\n" +"        <title lang=\"en\">Charlotte's Web</title>\n" +"        <author>E. B. White</author>\n" +"        <year>1952</year>\n" +"        <price>25.00</price>\n" +"    </book>\n" +"</bookstore>\n";Bookstore bookstore = JaxbUtil.converyToJavaBean(xmlTest, Bookstore.class);System.out.println(bookstore.getBook().get(0).getAuthor());String resTest = JaxbUtil.convertToXml(bookstore);System.out.println(resTest);}
}

输出结果 :

J.K. Rowling
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bookstore><book category="children"><title lang="en">Harry Potter</title><author>J.K. Rowling</author><year>2005</year><price>29.99</price></book><book category="web"><title lang="en">Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price></book><book category="cooking"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price></book><book category="children"><title lang="en">Charlotte's Web</title><author>E. B. White</author><year>1952</year><price>25.00</price></book>
</bookstore>

这样就把xml里面的数据给取出来了,兄弟们就可以进行后续的操作了

欢迎大家在评论区讨论,今天的干货分享就到此结束了,如果觉得对您有帮助,麻烦给个三连!

以上内容为本人的经验总结和平时操作的笔记。若有错误和重复请联系作者删除!!感谢支持!!

 

这篇关于随心笔记,第六更的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1057427

相关文章

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

操作系统实训复习笔记(1)

目录 Linux vi/vim编辑器(简单) (1)vi/vim基本用法。 (2)vi/vim基础操作。 进程基础操作(简单) (1)fork()函数。 写文件系统函数(中等) ​编辑 (1)C语言读取文件。 (2)C语言写入文件。 1、write()函数。  读文件系统函数(简单) (1)read()函数。 作者本人的操作系统实训复习笔记 Linux

LVGL快速入门笔记

目录 一、基础知识 1. 基础对象(lv_obj) 2. 基础对象的大小(size) 3. 基础对象的位置(position) 3.1 直接设置方式 3.2 参照父对象对齐 3.3 获取位置 4. 基础对象的盒子模型(border-box) 5. 基础对象的样式(styles) 5.1 样式的状态和部分 5.1.1 对象可以处于以下状态States的组合: 5.1.2 对象

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充;数据独立性高。DBMS 对数据的控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。 数据库技术研究领域:数据库管理系统软件的研发;数据库设计;数据库理论。数据模型要素 数据结构:描述数据库

【软考】信息系统项目管理师(高项)备考笔记——信息系统项目管理基础

信息系统项目管理基础 日常笔记 项目的特点:临时性(一次性)、独特的产品、服务或成果、逐步完善、资源约束、目的性。 临时性是指每一个项目都有确定的开始和结束日期独特性,创造独特的可交付成果,如产品、服务或成果逐步完善意味着分步、连续的积累。例如,在项目早期,项目范围的说明是粗略的,随着项目团队对目标和可交付成果的理解更完整和深入时,项目的范围也就更具体和详细。 战略管理包括以下三个过程

【软考】信息系统项目管理师(高项)备考笔记——信息化与信息系统

信息化与信息系统 最近在备考信息系统项目管理师软考证书,特记录笔记留念,也希望可以帮到有需求的人。 因为这是从notion里导出来的,格式上可能有点问题,懒的逐条修改了,还望见谅! 日常笔记 核心知识 信息的质量属性:1.精确性 2.完整性 3.可靠性 4.及时性 5.经济性 6.可验证下 7.安全性 信息的传输技术(通常指通信、网络)是信息技术的核心。另外,噪声影响的是信道

flex布局学习笔记(flex布局教程)

前端笔试⾯试经常会问到:不定宽⾼如何⽔平垂直居中。最简单的实现⽅法就是flex布局,⽗元素加上如下代码即 可: display: flex; justify-content: center; align-items :center; 。下⾯详细介绍下flex布局吧。   2009年,W3C提出了 Flex布局,可以简便⼂完整⼂响应式地实现各种页⾯布局。⽬前已得到了所有浏览器的⽀持,这意味着,现