wutka这个东西太好了,拿出来与大家分享。
public class TESTER {
public final static void main(String[] args) {
String xml = BeanXMLMapping.toXML(new Bean());
System.out.println(xml);
Object fromXML = BeanXMLMapping.fromXML(xml, Bean.class);
StringBuilder buf = new StringBuilder();
buf.append("<Xml>");
buf.append("<![CDATA[").append(xml).append("]]>");
buf.append("</Xml>");
System.out.println(buf.toString());
System.out.println(fromXML.getClass().getName());
}
}
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import com.wutka.jox.JOXBeanInputStream;
import com.wutka.jox.JOXBeanOutputStream;
public class BeanXMLMapping {
/**
*
*
Retrieves a bean object for the
*
*
*
* received XML and matching bean class
*/
public static Object fromXML(String xml, Class className) {
ByteArrayInputStream xmlData = new ByteArrayInputStream(xml.getBytes());
JOXBeanInputStream joxIn = new JOXBeanInputStream(xmlData);
try {
return (Object) joxIn.readObject(className);
} catch (IOException exc) {
exc.printStackTrace();
return null;
} finally {
try {
xmlData.close();
joxIn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
*
*
Returns an XML document.nbspString for the received bean
*/
public static String toXML(Object bean) {
ByteArrayOutputStream xmlData = new ByteArrayOutputStream();
JOXBeanOutputStream joxOut = new JOXBeanOutputStream(xmlData);
try {
joxOut.writeObject(beanName(bean), bean);
return xmlData.toString();
} catch (IOException exc) {
exc.printStackTrace();
return null;
} finally {
try {
xmlData.close();
joxOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
*
*
Find out the bean class name
*/
private static String beanName(Object bean) {
String fullClassName = bean.getClass().getName();
String classNameTemp = fullClassName.substring(
fullClassName.lastIndexOf(".") + 1,
fullClassName.length()
);
return classNameTemp.substring(0, 1)
+ classNameTemp.substring(1);
}
}
分享到:
相关推荐
在实际项目中,你可能会创建一个通用的工具类,包含上述方法,以便在任何需要JavaBean和XML互转的地方使用。在提供的`clientDemo`文件中,可能包含了这样的工具类示例,可以进一步研究和理解。 总结来说,JavaBean...
与JavaBean到XML相反,我们从XML Document对象中恢复JavaBean的实例。首先,需要读取XML文件并将其转换为Document对象,然后使用`JDOMUnmarshaller`进行反序列化。以下是一个示例: ```java File xmlFile = new ...
总的来说,JAXB是Java平台中一个强大且灵活的工具,它极大地简化了XML数据与Java对象之间的交互。通过学习和掌握JAXB,开发者可以更高效地处理XML数据,提高开发效率,同时降低出错的可能性。在提供的压缩包文件`...
这篇博客主要探讨了几种用于这些格式互转的工具,下面将详细介绍这些工具及其使用方法。 1. **Gson** (Google的JSON库) Gson是由Google提供的一个开源库,它可以将Java对象转换为JSON字符串,反之亦然。使用Gson,...
- **使用Apache Commons Betwixt**:与转换过程类似,Betwixt提供了从XML到JavaBean的反向映射功能。 在实际应用中,`Bean2xml.java`可能是一个工具类,它封装了上述转换逻辑。这个类可能包含静态方法,如`...
**JavaBean与XML互转——基于JAXB2的深度解析** 在Java开发中,XML作为一种通用的数据交换格式,被广泛用于存储和传输数据。而JavaBean则是Java对象的一种简化表示,便于封装和处理业务逻辑。当需要在Java程序中...
javabean生成xml.xml转换成javabean的工具类
本文将深入探讨XML与JavaBean之间的转换、XML标签的大小写规则、XML特殊符号的处理以及CDATA的生成。 1. XML转JavaBean: 在Java编程中,XML数据经常需要转换为Java对象以便于操作。这一过程通常通过XML解析器来...
首先,我们需要为JavaBean创建对应的XML Schema(XSD)文件,然后使用`jaxb schemagen`工具生成绑定文件(如`User.jaxb`)。之后,我们可以使用以下代码将JavaBean转换为XML: ```java import javax.xml.bind....
标题中的"xml 转Java bean工具"指的就是这样一种工具,它能够帮助开发者快速地将XML数据映射到Java对象上。这类工具通常会分析XML文件的结构,包括元素、属性等,并基于这些信息生成相应的Java Bean类。生成的Java ...
jar包只有两个dom4j和jaxen 后者是xml转javabean用到的,否则会报异常:java.lang.NoClassDefFoundError: org/jaxen/JaxenException。 项目可以直接运行,中间测试数据乱码地方不影响,可以自己替换文字
总的来说,JavaBean到XML映射文件工具是一个提高开发效率的实用工具,它简化了数据在Java对象和XML文档之间的转换,特别是在与Castor框架集成时。理解这个工具的工作原理和使用方法对于任何需要处理数据序列化的Java...
主要用于开发中常见的xml与javabean之间的数据互转,减少重复代码的编写,支持xml对应字段中的集合数据类型(只能为list)。现不支持bean转换成xml时不指定字段所对应xml元素结点名称的情况,所有的字段必需指定生成...
Castor提供了灵活性和便利性,可以处理复杂的数据结构和嵌套对象,是Java开发中进行对象-XML转换的一个有效工具。但需要注意的是,与JAXB等其他API相比,Castor的社区支持和更新可能相对较弱,因此在选择时需权衡...
了解这些知识点后,开发者可以根据项目需求和性能要求选择合适的工具或技术来实现XML与JavaBean之间的互转。在实际应用中,还可能涉及到XML Schema验证、命名空间处理、国际化支持等复杂情况,但以上所述内容已经...
本篇将详细讲解XML的解析方式及其在Java中的应用,特别是如何使用XStream库进行JavaBean与XML之间的互转。 1. **XML解析方式** - DOM解析:Document Object Model,它一次性加载整个XML文档到内存,形成一棵树形...
总之,JAXB是Java开发中处理XML的强大工具,通过它可以高效地进行XML与Java对象之间的转换,简化了数据交换过程。熟练掌握JAXB的使用,能大大提高开发效率,并让代码更加简洁、易于维护。在实际项目中,可以结合标签...
这篇博客将探讨如何使用XStream库实现JavaBean到XML字符串以及XML字符串回转到JavaBean的过程。 首先,让我们了解XStream的基本概念。XStream由Johannes Brodskiy创建,它是一个基于Java的库,提供了简单且高性能的...