Myeclipse+jdk1.5以上版本自带JAXB工具(xml和javaBean的转化)
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到 XML实例文档。
JAXBContext 提供了一个入口,通过这个入口可以管理必要的XML/Java绑定信息。客户端应用程序通过newInstance(contextPath)方法得到该类的新实例。contextPath 参数包含一个或多个Java包名,这些Java包就是了JAXB编译器所产生的接口代码所在的Java包。该参数值初始化JAXBContext 对象,使得它能够管理JAXB编译器产生的接口;对于 Marshaller和Unmarshaller,这两个对象主要是用于Java对象和XML文档互相转换的主要接口(Marshaller负责从 Java对象到XML文档的转换,Unmarshaller负责从XML文档到Java对象的转换)。
Unmarshaller.unmarshal() 的方法可以直接将一个XML文件里的数据转换成Java对象。
实例:
import java.io.File; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import com.pobasoft.ws.Bean.CheckUserRsBean; import com.pobasoft.ws.Bean.SelectUserIDListBean; import com.pobasoft.ws.Bean.SelectUserIDListRsBean; import com.pobasoft.ws.Interface.ExportEntityIDListInfo; import com.pobasoft.ws.InterfaceImpl.ExportEntityListInfo; public class Test { //*************XML-->JavaBean*********************** public static Object xmltojava(Class cls,File file) throws Exception{ JAXBContext ctx=JAXBContext.newInstance(cls); //JAXBContext可以创建 Unmarshallers(将XML解析为Java对象) Unmarshaller us=ctx.createUnmarshaller(); return us.unmarshal(file); } //*************JavaBean?XML*********************** public static void javatoxml(Object obj,File file) throws Exception{ JAXBContext ctx=JAXBContext.newInstance(obj.getClass()); //JAXBContext可以创建Marshallers(将Java对象转换成XML) Marshaller mar=ctx.createMarshaller(); mar.marshal(obj,file); } //测试(CheckUserRsBean是已经创建好的Bean对象)在文件保存的操作代码中,也有对JAXB的操作: private void saveAsFile() { ...... m.marshal(myContainer, new FileOutputStream(filename)); ...... } public static void main(String[] args) throws Exception { CheckUserRsBean crb=new CheckUserRsBean(); crb.setKey("abc"); javatoxml(crb, new File("C:\\a.xml")); -------------------------------------- File f=new File("C:\\a.xml"); CheckUserRsBean crb= (CheckUserRsBean) xmltojava(CheckUserRsBean.class, f); System.out.println(crb.getKey()); }
import java.beans.IntrospectionException; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import org.apache.commons.betwixt.io.BeanReader; import org.apache.commons.betwixt.io.BeanWriter; import org.xml.sax.SAXException; import com.pobasoft.ws.Bean.SelectUserIDListBean; public class XMLAndBeanUtil { /** * 将xml字符串转化为对象 * * @param xmlString * xml字符串 * @param className * 类得全称(包名+类名)字符串 * @param cl * 对象的class名称 * @return 转化成的对象 */ public Object xmlString2Object(String xmlString ,String className,Class cl) { // 创建一个读取xml文件的流 StringReader xmlReader = new StringReader(xmlString); // 创建一个BeanReader实例,相当于转化器 BeanReader beanReader = new BeanReader(); //配置BeanReader实例 beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false); beanReader.getBindingConfiguration().setMapIDs(false); //不自动生成ID //注册要转换对象的类,并指定根节点名称 try { //beanReader.registerBeanClass("SelectUserIDListBean", SelectUserIDListBean.class); beanReader.registerBeanClass(className,cl); } catch (IntrospectionException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } // 将XML解析Java Object Object obj = null; try { obj = beanReader.parse(xmlReader); } catch (IOException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } return obj; }
/** * 将对象转换为xml字符串 */ public String Object2XmlString(Object object) { String xmlString = null; // 创建一个输出流,将用来输出Java转换的XML文件 StringWriter outputWriter = new StringWriter(); // 输出XML的文件头 outputWriter.write("<?xml version='1.0' ?>\n"); // 创建一个BeanWriter实例,并将BeanWriter的输出重定向到指定的输出流 BeanWriter beanWriter = new BeanWriter(outputWriter); // 配置BeanWriter对象 beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false); beanWriter.getBindingConfiguration().setMapIDs(false); beanWriter.setWriteEmptyElements(false); try { beanWriter.write(object); } catch (Exception e) { e.printStackTrace(); } xmlString = outputWriter.toString(); // 关闭输出流 try { outputWriter.close(); } catch (IOException e) { e.printStackTrace(); } return xmlString; } }
相关推荐
XML和JavaBean相互转化是一个非常有用的工作,用来读写xml的组件很多,比如dom4j, sax, JDom,Digester等,但是很多组件用起来很麻烦,今天给大家推荐一个超级简单的组件JOX, JOX是一套用户XML document和Java ...
JavaBean和XML之间的转换在软件开发中扮演着重要的角色,特别是在数据交换和接口通信中。当我们需要在不同的系统之间传递信息时,XML由于其结构化和可读性,经常被用作数据传输的标准格式。然而,JavaBean是Java中...
1. XML到XSD的转换:XML文档可以被转化为XSD文件,以定义其结构和数据类型。这个过程通常通过工具完成,比如`trang.jar`,这是一个开源的RNG到其他Schema语言的转换工具。在本例中,可能使用了`trang.jar`将一个XML...
本主题聚焦于Java与XML之间的相互转化,特别是如何利用XML文件自动生成JavaBean对象,以及Java对象到XML的序列化和反序列化过程。 首先,Java与XML的转化通常涉及两个主要步骤:解析XML文件生成Java对象和将Java...
- **简单易用:**XStream 提供了简洁的 API,使得在 Java 代码中进行 XML 和 Java 对象之间的转换变得非常容易。 - **自定义映射:**如果默认的自动映射不符合需求,可以使用注解或配置文件来自定义字段与 XML 元素...
jox是一组java类库 实现javaBean与xml相互转化 更加容易
核心:解决了日期格式转化和导出XML中文乱码问题 介绍:有时候,我们需要把javabean的内容保存到文件,或者通过网络传递。这时候,把javabean转化为xml是一个常用的方式。但java本身提供的操作xml的方式有些麻烦,而...
1. **解析XML**:Java中使用DOM(文档对象模型)、SAX(简单API for XML)或StAX(流式API for XML)等解析器读取XML文件并将其转化为内存中的对象结构。DOM一次性加载整个XML文档,适合小文件;SAX事件驱动,逐行...
以下是一段简单的示例代码,展示如何使用Castor将XML数据转化为JavaBean: ```java import org.exolab.castor.xml.MarshalException; import org.exolab.castor.xml.Marshaller; import org.exolab.castor.xml....
JavaBean和XML是Java中实现持久化的两种常见方式。这篇博客文章将探讨如何使用JavaBean和XML进行数据持久化,并提供相关的源码实例。 首先,JavaBean是一种符合特定规范的Java类,它通常用来封装数据,具有getter和...
这个强大的工具在处理数据交换、持久化或配置文件时非常有用,尤其是在需要将复杂对象结构转化为易于理解和操作的文本格式时。 **一、XStream的安装与基本使用** 要使用XStream,首先需要将其添加到项目的依赖管理...
在Java开发中,我们经常需要将JavaBean对象的数据转化为XML格式,以便于数据交换、存储或网络传输。这个实例可能是为了演示如何使用JOX库中的BeanXMLMapping组件来实现这一过程。 首先,BeanXMLMapping组件是JOX库...
在线书店(jsp+javabean)是一个基于Web的图书销售系统,主要利用JavaServer Pages (JSP) 技术和...在线书店项目提供了一个实际的场景,帮助你将理论知识转化为实践经验,更好地理解和掌握JSP和JavaBean的协作机制。
Oracle提供了XMLGenerator API,这是一组过程和函数,它们可以将数据转化为XML格式。比如,DBMS_XMLGEN包中的NewContext函数创建一个XML生成器,然后通过GetXML函数将数据表的记录转换成XML格式。这个过程可以结合...
- 将JavaBean的数据转化为XML元素,并构建完整的XML结构。 - 将生成的XML文档写入磁盘。 5. 实例2:将文本串转换为XML并存盘 - 接收用户输入的文本字符串,该字符串可能包含XML结构信息。 - 使用DOM4J的`...
将xml转化为java对象 附带说明 运行以下代码: xjc -d . -p com.unis.bo ./amsbean.xsd xjc -dtd -d . -p com.wdhis.plugs.model.mahi ./Admission.dtd 利用java自带的xjc命令生成java类
例如,XML文件中的一个`<employee>`节点可能对应于一个`Employee` JavaBean对象,其中节点的属性如`id`、`name`和`position`会映射到`Employee`类的相应字段。 2. **JavaBean到XML的转换**:相反,Dm4J也支持将...
JAXB (Java Architecture for XML Binding) 是一种基于 Java 的 XML 绑定技术,主要功能是根据 DTD 或者 XML Schema 将 XML Element 转化为 Java 类。JAXB 将 XML 文本流转化为 Java Object,把 XML Processing 转化...
**生成动态XML**涉及到从数据库中提取数据并转化为XML文档。这通常需要一个能够处理字符串的系统,如Java Servlet、Enterprise JavaBean (EJB)服务器、Java Database Connectivity (JDBC)以及RDBMS。XML文档的生成...
在软件开发中,报表生成是一个常见的需求,而iReport是一款广泛使用的开源报表设计工具,它允许开发者创建复杂的报表,并支持多种数据源,包括数据库、XML、JavaBean等。本文将详细讲解如何在iReport中使用JavaBean...