使用JAXB处理JAVA和XML

使用JAXB完成Java和XML的相互转化:

java-->xml:编排,marshal

xml-->java:反编排,unmarshal

package org.itat.xml;

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 org.junit.Test;

public class TestJaxb {

	/**
	 * marshal编排,java-->xml
	 */
	@Test
	public void test01() {
		try {
			//1.创建JAXBContext实例
			JAXBContext ctx = JAXBContext.newInstance(Student.class);
			//2.创建marshaller实例
			Marshaller marshaller = ctx.createMarshaller();
			//3.创建student对象,并将该对象转换为xml
			Student student = new Student(1, "姚双双", 25, new Classroom(1, "08计算机应用技术", 2008));
			//4.将java-->xml,并输出
			marshaller.marshal(student, System.out);
		} catch (JAXBException e) {
			e.printStackTrace();
		}
	}
	/*
	 * 运行结果:
	 * <?xml version="1.0" encoding="UTF-8" standalone="yes"?><student><age>25</age><classroom><grade>2008</grade><id>1</id><name>08计算机应用技术</name></classroom><id>1</id><name>姚双双</name></student>
	 */
	
	/**
	 * unmarshal反编排,xml-->java
	 */
	@Test
	public void test02() {
		try {
			//要转换的xml
			String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><student><age>25</age><classroom><grade>2008</grade><id>1</id><name>08计算机应用技术</name></classroom><id>1</id><name>姚双双</name></student>";
			//1.创建JAXBContext实例
			JAXBContext ctx = JAXBContext.newInstance(Student.class);
			//2.创建unmarshaller实例
			Unmarshaller um = ctx.createUnmarshaller();
			//3.读入xml,并将xml-->java
			Student student = (Student)um.unmarshal(new StringReader(xml));
			//4.输出
			System.out.println(student.getName() + ", " + student.getClassroom().getName());
		} catch (JAXBException e) {
			e.printStackTrace();
		}
	}
	/*
	 * 运行结果:姚双双, 08计算机应用技术
	 * 
	 */
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值