WebService(2)-XML系列之Java和Xml之间相互转换

源码下载:链接:http://pan.baidu.com/s/1ntL1a7R 密码: rwp1

本文主要讲述:使用jaxb完成对象和xml之间的转换

TestJava2xml.java如下所示:

package com.tgb.jaxb.v1;

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;

/**
 * 通过Java和XML之间相互转换
 * @author 赵栗婧
 * @version 1.0.0 , 2015年6月25日 下午12:12:16
 */
public class TestJava2xml {

	// 测试:Java文件转化为Xml文件
	@Test
	public void testJava2Xml() {
		try {
			JAXBContext ctx = JAXBContext.newInstance(Student.class);
			// 用于Java文件转化为Xml文件的类
			Marshaller marshaller = ctx.createMarshaller();
			Student student = new Student(1001, "赵栗婧", 20, new Classroom(10,
					"10级生命科学与工程", 2010));
			marshaller.marshal(student, System.out);

		} catch (JAXBException e) {
			e.printStackTrace();
		}
	}

	// 测试Xml文件转化为Java文件
	@Test
	public void testXml2Java() {
		String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
				+ "<student>"
					+ "<age>20</age>"
					+ "<classroom>"
						+ "<grade>2010</grade>"
						+ "<id>10</id>"
						+ "<name>10级生命科学与工程</name>"
					+ "</classroom>"
					+ "<id>1001</id>"
					+ "<name>赵栗婧</name>"
				+ "</student>";
		try {
			JAXBContext ctx = JAXBContext.newInstance(Student.class);
			// 用于Xml文件转化为Java文件的类
			Unmarshaller um = ctx.createUnmarshaller();
			Student student = (Student) um.unmarshal(new StringReader(xml));
			System.out.println(student.getName() + ","
					+ student.getClassroom().getName());
		} catch (JAXBException e) {
			e.printStackTrace();
		}

	}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 16:14:47

WebService(2)-XML系列之Java和Xml之间相互转换的相关文章

Java处理XML的三种主流技术及介绍

Java处理XML的三种主流技术及介绍(1) 2012-08-15 10:44 顾彬/冯晨/乔彬 IBM developerWorks 我要评论(0) 字号:T | T XML (eXtensible Markup Language) 意为可扩展标记语言,它已经是软件开发行业中大多数程序员和厂商用以选择作为数据传输的载体.本文作者对于 Java 处理 XML 的几种主流技术进行一些总结和介绍,希望帮助那些有不同需求的开发人员对于 XML 处理技术的作出最优的选择. AD:51CTO 网+首届AP

Java学习之Xml系列三:dtd校验、改、增、删

见摘要.见代码注释,其他话不多说: DTD文档: <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT SwordLibrary (Sword*)> <!ELEMENT Sword (SwordName,Price,Attack)> <!ELEMENT SwordName (#PCDATA)> <!ELEMENT Price (#PCDATA)> <!ELE

Java学习之Xml系列一:初始步骤、查询元素及属性、遍历元素

话不多说,全在代码和注释说明里了. DTD文件:SwordTypeDefinition.dtd <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT SwordLibrary (Sword*)> <!ELEMENT Sword (SwordName,Price,Attack)> <!ELEMENT SwordName (#PCDATA)> <!ELEMENT Price

原 Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性

xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT SwordLibrary (Sword*)> <!ELEMENT Sword (SwordName,Price,Attack)> <!ELEMENT SwordName (#PCDATA)> &l

Java学习之Xml系列五:SAX解析——搜索xml内容

本文对SAX解析进一步说明. 另外主要给利用SAX解析方法找到指定条件(如标签名称)的xml文档内容. 首先按需要介绍一下DefaultHandler. DefaultHandler类是SAX2事件处理程序的默认基类.它继承了EntityResolver.DTDHandler.ContentHandler和ErrorHandler这四个接口.包含这四个接口的所有方法,所以我们在编写事件处理程序时,可以不用直接实现这四个接口,而继承该类,然后重写我们需要的方法.(注意:ContentHandler

JAVA解析XML之SAX方式

JAVA解析XML之SAX方式 SAX解析xml步骤 通过SAXParseFactory的静态newInstance()方法获取SAXParserFactory实例factory 通过SAXParserFactory实例的newSAXParser()方法返回SAXParser实例parser 创建一个类继承DefaultHandle,重写方法进行业务处理并创建这个类的实例handle 重写DefaultHandle类的方法 startElement方法用来遍历xml文件的开始标签; endEle

[CXF REST标准实战系列] 一、JAXB xml与javaBean的转换

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1.不认识到犯错,然后得到永久的教训. 2.认识JAXB 3.代码实战 1.不认识到犯错,然后得到永久的教训. 也不是所谓的教训吧,真正的教训来自于对错误的剖析理解很深刻.然后有种"吃一堑,长一智"的感觉才叫教训.近日和团队工头们用CXF3.0和Spring4.0开发一个平台,模仿着第三方支付,用xml进行数据交互

JAVA解析XML之DOM方式

JAVA解析XML之DOM方式 准备工作 创建DocumentBuilderFactory对象;    创建DocumentBuilder对象; 通过DocumentBuilder对象的parse方法加载xml 解析XML文件的属性名和属性值 解析XML文件的节点名和节点值 常用方法如下: getElementsByTagName(); getLength(); item(); getNodeName(); getNodeValue(); getNodeType(); *getAttribute

Java for XML: JAXP、JAXB、JAXM、JAX-RPC、JAX-WS

在XML领域里,对XML文件的校验有两种方式:DTD校验.Schema校验.在Java中,对于XML的解析,有多种方式:DOM解析.SAX解析.StAX解析.结合XML和Java后,就产生了Bind技术,将XML和Java Bean进行相互转化. Java对XML处理技术(JAXP)简述 JAXP,Java API for XML Processing.包括了对XML的解析.校验.查询.变换. 1)解析,将XML解析成对应的内存对象,典型的如DOM解析中的Document.Java Se中目前提