您的位置:首页 > 编程语言 > Java开发

JavaEE中利用JAXB来实现Java对象和XML文档进行相互转换

2016-07-09 18:40 791 查看
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。

可以让Java对象和XML文档进行相互的转换。

假设有一个POJO是这样的。

package com.xyz;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement

public class Boy

{

    String name = "张三";

    public String getName()

    {

        return name;

    }

    public void setName(String name)

    {

        this.name = name;

    }

}

类上面的注解@XmlRootElement表明Boy这个类为XML文档的根元素

再写一个单元测试类 测试

package org.test;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.StringReader;

import javax.xml.bind.JAXBContext;

import javax.xml.bind.JAXBException;

import javax.xml.bind.Marshaller;

import javax.xml.bind.Unmarshaller;

import javax.xml.transform.stream.StreamSource;

import org.junit.Test;

import com.xyz.Boy;

public class JAXBTest

{

    @Test

    public void jAXBTest() throws JAXBException, FileNotFoundException

    {

        JAXBContext context = JAXBContext.newInstance(Boy.class);

        

        Marshaller marshaller = context.createMarshaller();

        

        Boy boy = new Boy();

        

        marshaller.marshal(boy,new FileOutputStream("welcome.xml"));

        

        

        System.out.println("==================================");

        

        Unmarshaller unmarshaller = context.createUnmarshaller();

        

        Boy boy2 = (Boy) unmarshaller.unmarshal(new StreamSource(new File("welcome.xml")));

        

        System.out.println(boy2.getName());

        

    }

}

注意其中的Marshaller   Unmarshaller为两个核心类。可以对XML文档和Java对象进行相互转换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息