我们已经知道了怎么样去讲xml转成对象了,现在,我们要把对象成xml文件,那怎么搞呢??
非常简单,大家跟着我一步一步去做就OK啦。
我们现在有3个姑娘,分别是小红,小芳,小丽,现在,我们要把他们三个的信息存进一个叫girl.xml的文件中,并且这个xml的根节点叫root。我们首先定义好Girl。
@XmlAccessorType(XmlAccessType.FIELD) class Girl { public Girl(){ super(); } public Girl(String name,String age,String cup){ this.name=name; this.age=age; this.cup=cup; } @XmlElement(name = "name") private String name; @XmlElement(name = "age") private String age; @XmlElement(name = "cup") private String cup; public String toString(){ return name+","+age+","+cup+"\n"; } //get方法和set方法··· }
我们还要定义一个Root,因为他是根节点,并且他是所有的Girl的父节点,大家看:
@XmlRootElement(name = "root") class Root{ @XmlElement(name = "girl") private List<Girl> girls; public List<Girl> getGirls() { return girls; } public void setGirls(List<Girl> girls) { this.girls = girls; } }
我们跑起来看看:
public static void main(String[] args) { try { JAXBContext jaxbC = JAXBContext.newInstance(Root.class); Marshaller ms=jaxbC.createMarshaller(); ms.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); Root root=new Root(); List<Girl> girls=new ArrayList<Girl>(); Girl g1=new Girl("小红", "20", "F"); Girl g2=new Girl("小芳", "16", "A"); Girl g3=new Girl("小丽", "17", "B"); girls.add(g1); girls.add(g2); girls.add(g3); root.setGirls(girls); StringWriter sw=new StringWriter(); ms.marshal(root, sw); System.out.println(sw.toString()); } catch (JAXBException e) { e.printStackTrace(); } }
点击run,大家看:
是不是很赞???
来来来,总结一下,将java对象转成xml,用marshaller这个接口,我们需要做以下的事情:
1、定义好pojo,上面例子中的Girl和Root类
2、获取JAXBContext(jaxb上下文)
3、 Marshaller ms=jaxbC.createMarshaller();
ms.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
创建marshaller的接口并且给他设置属性
4、给Root,Girl赋值,并且执行 ms.marshal(root, sw);
总结完用法之后,我们来学习一下Unmarshaller和Marshaller的原理吧,知道了原理,才算真正的牛逼!!!
相关推荐
Marshaller来实现Java对象与xml的互转的源代码,这是博文中用到的源码,地址:http://blog.csdn.net/y353027520dx/article/details/43446549 大家可以直接下载后运行,一起学习学习。。
使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于...•Marshaller接口,将Java对象序列化为XML数据。 •Unmarshaller接口,将XML数据反序列化为Java对象。
xml转javaBean,javaBean转xml,xml标签大小写问题,CDATA的生成,以及对xml特殊符号的处理
JAXBContext,Marshaller 将特定格式的javaBean生成xml类型的String字符串
代替使用XML或JSON序列化,将数据集生成为Java语言。 此格式更适合于性能和重构目的。 技术支持 基本类型及其包装器类 枚举 馆藏与地图 数组(1维和2维) java.util.Date,java.sql.Date,日历,...
第二步:编组(Java 对象转 xml),提供多种编组目的地,例如编组到文件或编组到控制台。 五、JAXB 的注解 JAXB 使用 javax.xml.bind.annotation 包下的 Java 标注,例如: * @XmlRootElement:标注 Java 类为 ...
资源分类:Python库 所属语言:Python 资源全名:mongo-id-marshaller-1.0.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
java -cp target/marshalsec-0.0.1-SNAPSHOT-all.jar marshalsec.<Marshaller> [-a] [-v] [-t] [<gadget_type> []] 参数说明: -a:生成exploit下的所有payload(例如:hessian下的...
cvs-tsk-edh-marshaller 处理发往EDH的更新请求,并将它们通过管道传送到SQS队列 先决条件 NodeJS 8.10 npm install -g typescript -npm npm install -g typescript 无服务器npm install -g serverless 正在安装 ...
Kie Assets ReMarshaller ReMarshaller在项目中搜索Kie资产,然后通过对资产进行简单更改并随后进行保存操作来重新编组它们。动机需要确认“吃我们自己的食物”,在这种情况下,VS Code Extension的Kie资产不会阻碍...
NULL 博文链接:https://xuxiheng.iteye.com/blog/2233813
pysxm:简单的Python XML Marshaller
白板编组器 使用Whiteboard模式和路线的骆驼编组项目
web service 是java开源的一个远程调用技术,本项目...//把java object 转换成xml Unmarshaller unmarshaller = context.createUnmarshaller();//把 xml转换成java object 这个对于了解web service的工作原理很重要。
安装Marshaller 可以使用安装: composer require "gnugat/marshaller:~2.0"简单转换让我们以以下对象为例: <?phpclass Article{ public function __construct ( $ title , $ content ) { $ this -> title = ...
java教务系统源码Java Unmarshaller Security - 将数据转化为代码执行 纸 距离 Chris Frohoff 和 Garbriel Lawrence 展示他们对 Java 对象反序列化漏洞的研究已经两年多了,最终导致了 Java 历史上最大的远程代码...
它支持在Java域对象和XML表示形式之间轻松读取和写入SBD和SBDH。 它已获得Apache 2.0许可。 Maven用法 将以下内容添加到pom.xml中以使用此工件,将xyz替换为有效版本: < groupId>com.helger</ groupId> ...
简单NLG Simplenlg 是一个简单的 Java API,旨在促进自然语言的生成。 它最初是在。 这个(mavenized)git repo 旨在隐藏来自的最新源版本,但使用带有的 maven pom.xml文件扩充代码作为初始存储库。 注意:不会添加...
Jsonex JSONCoder是一个轻量级的通用对象序列化/反序列化库,类似于Jackson,GSON或FastJson。 多年来,该库已在各种eBay项目中广泛使用。 它不能替代其他流行的库。 但是,它解决了一些其他替代产品无法提供或无法...
XML转换器 安装 使用安装软件包: $ composer require nilportugues/xml 用法 给定一个PHP对象和一系列映射, XML Transformer将给定的数据表示为XML对象。 例如,给出以下代码,定义博客文章和一些评论: $ post...