如何将xml文件转变成java对象

Python019

如何将xml文件转变成java对象,第1张

首先 java是面向对象的编程语言,所以你要理解面向对象的思想。在这个前提下我们可以理解 文件 本身就是java的对象File,而xml只是File类中对象的一种实例。你可以创建一个File 把你的xml的路径传入这个对象的有参构造,这样就实例化了一个xml文件类的对象

本文记录一下使用xstream这个api的注解特性对Java对象与XML字符串相互转换的一些代码示例。

我们很多人都处理过XML文件,也有很多非常成熟的第三方开源软件。如:jdom、dom4j等。虽然他们的功能非常强大,但在使用上还是有点不那么习惯。对于格式比较固定的XML文档,它的结构没有变化或是很少变化,这时将它转换成我们熟悉的Java对象来操作的话,会使工作变得更容易一些,而xstream正好可以满足这一点。

本文所用xstream的版本为:1.4.7

<dependency>

<groupId>com.thoughtworks.xstream</groupId>

<artifactId>xstream</artifactId>

<version>1.4.7</version>

</dependency>

还是以之前的book XML为例,先上代码。

import com.thoughtworks.xstream.annotations.XStreamAlias

import com.thoughtworks.xstream.annotations.XStreamAsAttribute

@XStreamAlias("book")

public class Book {

// 别名注解,这个别名就是XML文档中的元素名,Java的属性名不一定要与别名一致

@XStreamAlias("name")

private String name

@XStreamAlias("author")

private String author

// 属性注解,此price就是book的属性,在XML中显示为:<book price="108">

@XStreamAsAttribute()

@XStreamAlias("price")

private String price

省略get和set方法

}

import java.util.List

import com.thoughtworks.xstream.annotations.XStreamAlias

import com.thoughtworks.xstream.annotations.XStreamImplicit

@XStreamAlias("books")

public class Books {

// 隐式集合,加上这个注解可以去掉book集合最外面的<list></list>这样的标记

@XStreamImplicit

private List<Book>list

省略get和set方法

}