我们已经知道了怎么样去讲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`实例,然后调用其`marshal`方法将Java对象转换为XML字符串或写入文件。 3. **XStream使用**: - 引入XStream库,然后创建一个XStream实例。 - 使用`toXML()`方法将Java对象转换为XML字符...
JAXB是Java SE的一部分,它提供了将Java对象直接转换为XML文档,以及从XML文档反序列化回Java对象的能力。首先,你需要为要转换的对象创建对应的Java类,并使用`@XmlRootElement`、`@XmlElement`等注解来指定XML...
Java Architecture for XML Binding (JAXB) 是Java平台中用于处理XML和Java对象之间转换的一个标准API。它使得在Java应用程序中使用XML数据变得更加方便,无需手动编写大量的转换代码。本教程将详细介绍JAXB如何实现...
Marshaller来实现Java对象与xml的互转的源代码,这是博文中用到的源码,地址:http://blog.csdn.net/y353027520dx/article/details/43446549 大家可以直接下载后运行,一起学习学习。。
3. 解析XML:有了Java类,我们就可以使用JAXB提供的`Unmarshaller`接口将XML文档解析成Java对象。以下是一个简单的示例: ```java JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Unmarshaller ...
- **XML到Java对象的绑定(XML Binding)**:将XML文档解析成Java对象模型。 - **Java对象到XML的序列化**:将Java对象转换成XML格式的字符串或文件。 - **支持复杂的数据结构**:包括嵌套对象、数组、集合等。 - **...
- **生成XML**:通过`JAXBContext`实例,你可以获取`Marshaller`对象,然后调用`marshal()`方法将Java对象转换为XML字符串或文件。 2. **DOM解析**:Document Object Model(DOM)是另一种处理XML的方式。通过构建...
然后,使用JAXBContext实例化并生成Unmarshaller对象,通过unmarshal()方法将XML解析成Java对象。同样,可以使用Marshaller对象将JavaBean对象转换回XML。 2. JavaBean转XML: JavaBean转XML的过程与XML转JavaBean...
当处理XML文件时,有时我们需要将其内容转换为Java对象,如List,以便于操作和处理。本篇文章将深入探讨如何将XML转换为指定类型的List数组,并涉及多层数据结构的处理。 1. **Java XML解析库** 在Java中,有多种...
一旦建立了这种映射,我们就可以使用`Unmarshaller`来将XML文档解析为Java对象,或使用`Marshaller`将Java对象序列化为XML文档。 在XML到Bean的转换过程中,通常需要以下步骤: 1. **定义Java Bean类**:首先,...
通过`Marshaller`,你可以将Java对象转换成XML字符串、写入到文件或流中。例如,如果你有一个名为`myObject`的Java对象,并希望将其转换为XML字符串,可以这样做: ```java Marshaller marshaller = jaxbContext....
JAXBContext是JAXB框架的核心,它扮演着一个工厂的角色,负责创建Unmarshaller(用于从XML到Java对象的转换)和Marshaller(用于从Java对象到XML的转换)。在这个"JAXBContext测试Java对象与xml的相互转换Demo"中,...
3. **类型转换**:XML Schema定义了丰富的数据类型,库提供了将XML数据转换为Java对象,以及反之的功能。 4. **命名空间管理**:XML Schema支持命名空间,库能有效地管理和处理命名空间,确保正确解析和引用元素和...
同样使用JAXB,你可以创建一个`Unmarshaller`对象,然后调用其`unmarshal`方法将XML文档解析成对应的Java对象。 ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; public class ...
本示例"JAVA对象与XML相互转化DEMO"聚焦于如何在Java中实现对象与XML之间的互转,这对于理解和处理数据交换至关重要。 首先,Java中实现XML到对象的转换主要依赖于JAXB(Java Architecture for XML Binding)。JAXB...
这篇博客“实用工具(一)——Java对象类、XML格式的相互转换”主要探讨了如何在Java编程中处理对象与XML之间的互换。XML(eXtensible Markup Language)是一种结构化数据格式,广泛用于数据交换和存储,而Java对象...
- 使用`JAXBContext`的`createMarshaller()`方法创建`Marshaller`对象,然后调用`marshal()`方法,将Java对象转换为XML字符串或写入XML文件。 4. **DOM (Document Object Model)**: 另一种方法是使用DOM API,它...
Java Architecture for XML Binding (JAXB) 是一个Java标准,它提供了在Java对象和XML文档之间进行自动转换的能力。这项技术极大地简化了XML数据处理,使得开发者可以方便地将Java对象序列化为XML,或者从XML数据中...
Jackson的`jackson-dataformat-xml`模块和Gson的`gson-to-xml`库可以实现XML与Java对象的互转。 7. XMLBeans: - Apache的XMLBeans库提供了另一种Java对象到XML的映射方式,通过生成与XML schema对应的Java类,...
3. **JAXB(Java Architecture for XML Binding)**:JAXB提供了一种将Java对象和XML进行自动转换的方式,使得数据交换变得简单。通过注解或者绑定文件,可以定义Java类和XML元素之间的映射关系。`javax.xml.bind....