`
foryougeljh
  • 浏览: 116688 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java对象与xml文件转换

 
阅读更多
XStream 是一个轻量级的、简单易用的开放源代码Java™库,用于将 Java 对象序列化为 XML 或者再转换回来

XStream 对象相当Java对象和XML之间的转换器,转换过程是双向的。创建XSteam对象的方式很简单,只需要new XStream()即可。
Java 到xml,用toXML()方法。
Xml到Java,用fromXML()方法。

在没有任何设置默认情况下,java到xml的映射,是java成员名对应xml的元素名,java类的全名对应xml根元素的名字。而实际中,往往是xml和java类都有了,要完成相互转换,必须进行别名映射。

XStream 的编码:
本身并没有实现编码,必须依靠java.io.Writer来实现输出编码的转换。

XStream 的常用方法
xstream.omitField(mytest.class,"name");定义某一个属性的值不进行xml序列化。
xstream.alias("cat", Cat.class); 对某一个类进行别名定义
xstream.aliasField("age",Cat.class, "mAge");对某一个类的属性进行别名定义。
xstream.useAttributeFor(String.class);对所有String类型的字段定义为属性tag显示
xstream.useAttributeFor("name".String.class);对所有String类型的字段名成为name 定义为属性tag显示

package com.ljh.bean;
public class Address {
private int id;
private String addressName;
public Address(){}
public Address(int id, String addressName) {
this.id= id;
this.addressName= addressName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id= id;
}
public String getAddressName() {
return addressName;
}
public void setAddressName(String addressName) {
this.addressName= addressName;
}
}

package com.ljh.bean;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Person {
private int id;
private String name;
private int age;
private String birthday;
private List<Address> addresses = new ArrayList<Address>();
private Date date = new Date();
public Person(int id, String name, int age,String birthday) {
this.id= id;
this.name= name;
this.age= age;
this.birthday= birthday;
}
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses= addresses;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date= date;
}
public String getBirthday() {
return birthday;
}

public void setBirthday(String birthday) {
this.birthday= birthday;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id= id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name= name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age= age;
}
public void add(Address address){
addresses.add(address);
}
}

package com.ljh.xstream;
import java.io.PrintWriter;
import com.ljh.bean.Address;
import com.ljh.bean.Person;
import com.thoughtworks.xstream.XStream;
public class XStreamTest {
public static void main(String[] args) throws Exception {
Address address1 = new Address(1,"北京");
Address address2 = new Address(2,"天津");
Address address3 = new Address(3,"上海");
Person p = new Person(1,"ljh",38,"2111-11-11 11:11");
p.add(address1);
p.add(address2);
p.add(address3);
XStream xstream = new XStream();
//对某一个类进行别名定义
xstream.alias("地址",Address.class);
xstream.alias("联系人",Person.class);
//对某一个类的属性进行别名定义
xstream.aliasField("编号",Person.class, "id");
xstream.aliasField("姓名",Person.class, "name");
xstream.aliasField("年龄",Person.class, "age");
xstream.aliasField("联系方式",Person.class, "addresses");
xstream.aliasField("编号",Address.class, "id");
xstream.aliasField("名称",Address.class, "addressName");
xstream.aliasField("生日",Person.class, "birthday");
//定义某一个属性的值不进行xml序列化。
xstream.omitField(Person.class,"date");
//对id字段定义为属性显示
xstream.useAttributeFor(Person.class,"id");
xstream.useAttributeFor(Address.class,"id");
//对所有String类型的字段名成为name 定义为属性tag显示
//xstream.useAttributeFor("name".String.class);
xstream.toXML(p,new PrintWriter("c:\\person.xml","utf-8"));
}
}
分享到:
评论

相关推荐

    JAVA对象序列化保存为XML文件的工具类

    另一方面,`objectXmlDecoder`方法打开XML文件,创建一个`XMLDecoder`实例,读取XML数据并将其转换回Java对象。这些对象被添加到一个`ArrayList`中并返回。注意,如果XML文件中包含多个序列化的对象,`XMLDecoder`将...

    JAXB工具类 xml转为java对象 java对象转为xml

    JAXB是Java开发中处理XML的强大工具,通过注解和API实现了XML与Java对象的自动转换。了解并熟练掌握JAXB,能够提升XML数据处理的效率和代码的可读性。在实际项目中,结合JAXB与XML Schema,可以构建更健壮、易于维护...

    JAVA对象与XML相互转化DEMO

    3. **序列化Java对象**:调用`Marshaller`的`marshal()`方法,将Java对象写入XML文件。 ```java JAXBContext jaxbContext = JAXBContext.newInstance(Example.class); Marshaller marshaller = jaxbContext....

    xml文件自动转成java对象工具

    除了XSD转Java,有些工具还支持直接将XML文件转换为Java对象。这个过程涉及到XML解析,通常使用DOM(Document Object Model)、SAX(Simple API for XML)或者StAX(Streaming API for XML)等解析器。解析器读取XML...

    XML转换为JAVA对象的方法

    无论是将Java对象持久化为XML存储,还是从XML文件加载数据到程序中,它都能大大简化工作流程,提高开发效率。在IDEA这样的开发环境中,利用构建工具管理依赖,结合实际的代码示例,学习和使用XStream变得非常容易。

    java对象与xml间的转换.docx

    Java 对象与 XML 之间的转换 Java 对象与 XML 之间的转换是 Java programming 中的一个重要话题。随着软件开发的复杂化,数据交换变得越来越频繁,而 XML 作为一种通用的数据交换格式,渐渐成为开发者们的选择之一...

    java对象与xml的互相转换

    这里需要注意的是,XML文件应符合Java对象的结构,即XML元素和属性应与Java类的字段相对应。 在提供的压缩包文件中,虽然提到了`jaxws-api-2.0.jar`,但根据描述,它可能不是必需的。`jaxws-api`主要与Web服务相关...

    java导入导出xml文件

    本文将深入探讨如何在Java中进行XML文件的导入与导出。 首先,理解XML的基本结构至关重要。XML文件由一系列的元素构成,每个元素都有可能包含子元素或者文本内容。元素通过开始标签 `&lt;tag&gt;` 和结束标签 `&lt;/tag&gt;` ...

    JAVA对象与XML互转

    2. **DOM解析**:解析XML文件得到DOM树,然后遍历树并创建相应的Java对象。这通常需要手动编写解析代码,比较繁琐。 3. **SAX解析**:Simple API for XML(SAX)是一种事件驱动的解析方式,适合处理大型XML文件。当...

    java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类

    6. **反向操作**:如果需要将Java对象转换回XML,可以创建`Marshaller`,然后调用`Marshaller.marshal()`方法将Java对象写入XML文件。 在描述中提到的DTO(数据传输对象)是软件设计模式中的一种,用于在系统组件...

    JAXBContext测试Java对象与xml的相互转换Demo

    这里,`unmarshal`方法将XML文件转换为Java对象,而`marshal`方法则将Java对象转换为XML文件。在实际应用中,我们可能需要处理更复杂的XML结构,包括嵌套的元素、数组和集合等,JAXB提供了丰富的注解来支持这些场景...

    JaxbContext生成xml文件或java类对象转化注解

    JAXBContext 生成 XML 文件或 Java 类对象转换注解 JAXB(Java API for XML Binding)是一种将 Java 对象与 XML 进行转换的技术。JAXB 提供了一个快速便捷的方式将 Java 对象与 XML 进行转换。在 JAX-WS(Java 的 ...

    通过JAXB实现完成java对象和xml的互相转换

    在本文中,我们将深入探讨如何使用JAXB实现Java对象与XML的互相转换。 首先,我们需要理解JAXB的基本工作原理。JAXB基于Java注解,这些注解用于标记Java类和它们的属性,以便JAXB知道哪些元素和属性应该映射到XML中...

    Java对象与xml转换

    本篇文章将探讨如何在Java中进行Java对象与XML之间的转换,以及相关的工具和技术。 1. Java对象到XML转换: - **JAXB (Java Architecture for XML Binding)**:这是Java的标准API,用于在Java对象和XML之间进行...

    java对象生成xml数据

    在Java编程中,将Java对象转换为XML数据是一项常见的任务,特别是在处理数据交换或存储时。JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许开发者轻松地在Java对象和XML文档之间进行映射...

    webservice之使用jaxb把xml转换Object或把对象转换成xml文件

    在Java世界中,使用JAXB(Java Architecture for XML Binding)库可以方便地实现XML数据与Java对象之间的转换,从而在WebService中轻松处理数据交换。本篇文章将深入探讨如何使用JAXB进行XML到Object以及Object到XML...

    Java格式化Xml文件

    使用`javax.xml.parsers.DocumentBuilderFactory`和`DocumentBuilder`,可以将XML文件解析为一个`Document`对象。这个过程是通过`parse()`方法完成的,它接受一个`InputStream`或`File`作为参数,例如: ```java ...

    JAXB技术实现xml与java对象互相转化代码教程

    使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...

    用java读取xml文件的四种方法

    它可以自动将XML文档转换为Java对象,反之亦然。适合于需要将XML数据与Java对象进行绑定的情况。 ```java JAXBContext context = JAXBContext.newInstance(MyObject.class); Unmarshaller unmarshaller = ...

    xml转换java对象

    在Java编程中,我们经常需要将XML文件的数据转换为Java对象,以便于处理和操作。Apache Commons Betwixt库提供了一种简单的方法来实现这个转换。 Apache Commons Betwixt是Apache软件基金会的一个项目,它提供了一...

Global site tag (gtag.js) - Google Analytics