`

xml转换成bean

    博客分类:
  • java
 
阅读更多
实现类
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.lang.reflect.Method;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class ReadXMLUtil<T> {
	public T toEntity(Class<T> clazz, String xmlStr) throws Exception {
		// System.out.println(xmlStr);
		T t = null;
		Document doc = null;
		DocumentBuilder builder = null;
		// parse the xmlStr to DOM document
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		builder = factory.newDocumentBuilder();
		InputStream is = null;
		if (xmlStr.indexOf("encoding=\"GBK\"") >= 0) {
			is = new ByteArrayInputStream(xmlStr.getBytes("GBK"));
		} else {
			is = new ByteArrayInputStream(xmlStr.getBytes("utf-8"));
		}
		doc = builder.parse(is);
		if (doc == null)
			return null;
		t = clazz.newInstance();
		Method[] methods = clazz.getMethods();
		// read value from document by reflection
		for (Method method : methods) {
			if (!method.getName().substring(0, 3).equals("set")) {
				continue;
			}
			String methodName = method.getName();
			String propertyName;
			if ("setLoginNum".equals(methodName)) {
				propertyName = methodName.substring(3, 4)
						+ methodName.substring(4, method.getName().length());
			}else {
				propertyName = methodName.substring(3, 4).toLowerCase()
						+ methodName.substring(4, method.getName().length());
			}
			try {
				NodeList nl = doc.getElementsByTagName(propertyName);
				if (nl.getLength() < 1)
					continue;
				Node n = nl.item(0);
				if (n == null)
					continue;
				String value = n.getTextContent();
				method.invoke(t, value);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				throw e;
			}
		}

		return t;
	}
调用方法:
ReadXMLUtil<UserAuth> readXML = new ReadXMLUtil<UserAuth>();
userAuth = readXML.toEntity(UserAuth.class, respXML);

 

分享到:
评论

相关推荐

    xml 转Java bean工具

    在Java编程中,我们经常需要将XML数据转换为Java对象,也就是所谓的Java Bean,以便于处理和操作。Java Bean是符合一定规范的Java类,通常具有getter和setter方法,用于封装数据。 XML到Java Bean的转换可以手动...

    xml和java bean互相转换工具包(简单易用)

    xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...

    xml和bean 互相转换

    在Java开发中,XML(可扩展标记语言)和Bean之间的互相转换是一项常见的任务,尤其是在处理配置文件、数据交换或者序列化场景中。本篇将详细阐述XML与Bean之间的转换过程,以及相关的Java技术。 首先,XML是一种...

    使用dom4j将xml字符串转换成Bean对象

    要将XML字符串转换为Bean对象,我们首先需要创建一个Bean类,这个类的属性与XML节点相对应。例如,如果我们有以下XML字符串: ```xml &lt;name&gt;Yang Yong &lt;age&gt;30 &lt;email&gt;yangyong@example.com&lt;/email&gt; ``` 我们...

    java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类

    在XML到Bean的转换过程中,通常需要以下步骤: 1. **定义Java Bean类**:首先,我们需要创建一个Java类,该类的属性对应于XML文件中的元素。这些属性通常用`@XmlElement`注解,表示它们将被映射到XML元素。如果属性...

    JavaXml及Bean互转

    - 使用`toXML()`方法将Java Bean转换为XML字符串。 - 使用`fromXML()`方法将XML字符串转换为Java Bean。 3. **示例**: ```java import com.thoughtworks.xstream.XStream; public class XStreamDemo { ...

    使用Betwixt将XML转为JAVA Bean(内有JAR包)

    在Java开发中,数据对象(通常称为Bean)与XML之间的转换是常见的需求,尤其是在处理配置文件、序列化或网络通信时。Betwixt是一个Apache软件基金会提供的库,专门用于XML与Java对象之间的绑定,使得我们可以方便地...

    xml to bean or bean to xml

    在提供的文件`ClassToXml.java`和`CC.java`中,很可能是实现了XML到Bean或Bean到XML转换的示例代码。具体实现细节需要查看源代码才能理解。通常,这些类会包含对JAXB API的调用,如创建JAXBContext、Unmarshaller和...

    jaxb XMl和BEAN互转实例(内含jar包)

    在给定的"jaxb XMl和BEAN互转实例(内含jar包)"中,我们有一个实用工具类,它简化了使用JAXB进行XML与BEAN对象之间转换的过程。 在Java编程中,BEAN通常指的是符合JavaBeans规范的简单Java类,它们通常包含getter...

    使用jaxb将XML转化为JAVA BEAN

    JAXB是Java标准API,它提供了将XML文档与Java对象之间进行自动转换的能力,极大地简化了XML的处理。 首先,我们需要理解JAXB的工作原理。JAXB基于Java反射机制,通过在Java类上使用特定的注解(如@XmlRootElement、...

    利用jaxb实现xml和bean互转

    4. **Unmarshalling**: 反之,将XML转换回Java对象的过程称为 unmarshalling。这可以通过使用JAXB的`Unmarshaller`接口完成。 **二、JAXB的使用步骤** 1. **创建Java Bean**: 首先,定义一个或多个Java类,它们...

    任意深度xml与bean的互转

    在将XML转换为Bean的过程中,DOM4J会遍历XML的元素树,根据元素的标签名映射到Bean的字段,元素的值则赋给对应的字段。如果元素是列表类型,DOM4J会创建一个集合,并将子元素转化为相应的Bean对象添加到集合中。对于...

    xmlbean入门实例

    通过这个入门实例,你将掌握XMLBean的基本操作,包括如何生成Java类,如何从XML到Java对象的转换,以及反之。这将为你在实际项目中处理XML数据提供有力的支持。继续深入学习XMLBean,你会发现更多高级特性和用法,如...

    poi excel转换成bean

    标题“poi excel转换成bean”涉及到的关键技术是使用Apache POI从Excel文件中读取数据并将其映射到Java Bean对象中。这个过程在处理大量结构化数据时特别有用,例如导入数据库或进行数据分析。 首先,我们需要理解...

    xmlBean eclipse插件

    XMLBean是Apache软件基金会开发的一款工具,主要用于将XML Schema(XSD)转换为Java Bean类,使得开发者可以方便地在Java应用中处理XML数据。Eclipse是一个广泛使用的集成开发环境(IDE),支持多种编程语言,包括...

    xStream xml to bean

    这个工具类的目标就是利用xStream的功能,方便地将XML文档转换为Java Bean对象,以及将Bean对象转换为XML字符串。 xStream的核心思想是通过反射和类型映射来实现对象与XML之间的转换。它使用一种称为“annoation”...

    利用digester来将xml转换为bean

    5. **博文链接**:在阅读和实践过程中,可以参考以下博文获取更深入的理解:[《利用digester将xml转换为bean》](https://bazhuang.iteye.com/blog/188518)。这个链接提供了详细的示例代码和解释,有助于进一步学习和...

    支持XML转Bean

    本教程将深入探讨如何在Java中实现XML到Bean的转换,并提供实际运行的示例。 首先,我们需要了解Java的API——JAXB(Java Architecture for XML Binding),这是一个用于在Java对象和XML之间进行映射的标准库。JAXB...

    利用JAXB进行xml和javabean之间转换

    这使得XML文档能够被自动解析成Java对象,反之亦然。 **1. JAXB的使用步骤** (1) **创建Java类(javabean)** 首先,定义一个Java类,这个类代表XML文档的结构。我们可以使用注解(如`@XmlRootElement`、`@...

Global site tag (gtag.js) - Google Analytics