`

java学习之JAXB解析xml

 
阅读更多
时间仓促,只记录代码

//实体类
package com.wx.common;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
public class DeMenuEntity {
	@XmlElement
	private String ToUserName;
	@XmlElement
	private String FromUserName;
	@XmlElement
	private String CreateTime;
	@XmlElement
	private String MsgType;
	@XmlElement
	private String Event;
	@XmlElement
	private String EventKey;

	public void setToUserName(String toUserName) {
		ToUserName = toUserName;
	}

	public void setFromUserName(String fromUserName) {
		FromUserName = fromUserName;
	}

	public void setCreateTime(String createTime) {
		CreateTime = createTime;
	}

	public void setMsgType(String msgType) {
		MsgType = msgType;
	}

	public void setEvent(String event) {
		Event = event;
	}

	public void setEventKey(String eventKey) {
		EventKey = eventKey;
	}

	public String getToUserName() {
		return ToUserName;
	}

	public String getFromUserName() {
		return FromUserName;
	}

	public String getCreateTime() {
		return CreateTime;
	}

	public String getMsgType() {
		return MsgType;
	}

	public String getEvent() {
		return Event;
	}

	public String getEventKey() {
		return EventKey;
	}
	
	
}


// 解析的方法
package com.wx.utils;

import java.io.ByteArrayInputStream;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;

import com.wx.common.DeMenuEntity;

/**
 * 解析xml
 * 
 * @author Jay_Lee
 */
public class ParseXmlUtil {
	/**
	 * 解析xml为响应的实体类
	 * 
	 * @param xml
	 * @return
	 * @throws JAXBException
	 */
	public static Object parseXml(String xml) throws JAXBException {
		JAXBContext jc = JAXBContext.newInstance(DeMenuEntity.class);
		Unmarshaller u = jc.createUnmarshaller();
		return u.unmarshal(new ByteArrayInputStream(xml.getBytes()));
	}

	public static void main(String[] args) throws JAXBException {
		String str = "<xml><ToUserName>user</ToUserName><FromUserName>from uk</FromUserName><CreateTime>123456789</CreateTime><MsgType>test</MsgType><Event>teds</Event><EventKey>111</EventKey></xml>";
		DeMenuEntity dme = (DeMenuEntity) parseXml(str);
		System.out.println(dme.getCreateTime());
		System.out.println(dme.getEvent());
		System.out.println(dme.getEventKey());
		System.out.println(dme.getFromUserName());
		System.out.println(dme.getMsgType());
		System.out.println(dme.getToUserName());
	}
}
分享到:
评论

相关推荐

    JAVA JAXB 解析XML嵌套子节点为字符串

    使用JAXB解析XML时,我们首先需要创建一个Java类模型,这个模型反映了XML文档的结构。每个XML元素对应一个Java类,类的属性对应元素的属性或子元素。例如,如果XML中有以下结构: ```xml &lt;text&gt;Some text here ...

    jaxb解析xml

    JAXB (Java Architecture for XML Binding) 是一种基于 Java 的 XML 绑定技术,主要功能是根据 DTD 或者 XML Schema 将 XML Element 转化为 Java 类。JAXB 将 XML 文本流转化为 Java Object,把 XML Processing 转化...

    jaxb解析xml为对象例子

    在"jaxb解析xml为对象例子"中,我们将探讨如何使用JAXB将XML文件解析为Java对象。首先,我们需要一个XML文件,它包含我们想要映射到Java对象的数据。例如,假设我们有一个名为`employee.xml`的文件,其中包含员工...

    最新JAXB解析XML教程

    总之,学习JAXB不仅可以帮助你理解XML与Java之间的转换机制,还能提升你在开发中处理XML数据的能力。通过深入学习和实践,你将能够熟练运用JAXB进行XML的解析和编码,提高项目开发的效率和质量。

    jaxb解析生成xml

    以下是一个简单的JAXB解析生成XML的例子: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; public class JaxbExample { public static ...

    JAXB工具类 xml转为java对象 java对象转为xml

    // 解析XML文件 Person person = (Person) unmarshaller.unmarshal(new File("person.xml")); System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } } ``` #...

    stax+jaxb进行xml解析

    在Java中,有多种方法可以解析XML,其中StAX(Streaming API for XML)和JAXB(Java Architecture for XML Binding)是两种常用的技术。本篇文章将详细探讨如何结合StAX和JAXB进行高效的XML解析。 StAX是一种事件...

    java学习之jaxb的学习一

    Java学习之JAXB(Java Architecture for XML Binding)的学习一 JAXB是Java平台的一个标准,它为XML到Java对象的绑定提供了一种自动的方式,使得XML数据能够在Java应用程序中轻松地进行序列化和反序列化。这个技术...

    通过JAXB实现完成java对象和xml的互相转换

    Java Architecture for XML Binding (JAXB) 是一个Java标准,它提供了在Java对象和XML文档之间进行自动转换的能力。这项技术极大地简化了XML数据处理,使得开发者可以方便地将Java对象序列化为XML,或者从XML数据中...

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

    而JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许我们轻松地在Java对象(javabean)和XML文档之间进行转换。通过JAXB,开发者可以避免手动编写XML解析和序列化代码,极大地提高了开发...

    java 解析xml 多级

    总结来说,Java提供了多种解析XML的方法,包括DOM、SAX和JAXB等。对于处理多级嵌套的XML,DOM和JAXB在操作上更为便捷,而SAX则适用于处理大规模文件。在具体选择时,应根据项目需求和资源限制进行权衡。

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

    5. **解析XML到Java对象**:调用`Unmarshaller.unmarshal()`方法,传入XML文件的输入源,得到对应的Java对象。 6. **反向操作**:如果需要将Java对象转换回XML,可以创建`Marshaller`,然后调用`Marshaller.marshal...

    java 解析XML性能对比分析Demo

    本文将深入探讨几种不同的XML解析方法,并通过实际的“Java解析XML性能对比分析Demo”来展示它们的性能差异。我们将讨论DOM、SAX、JDOM、DOM4J和JAXB这五种解析器,以及它们各自的特点和适用场景。 1. DOM(文档...

    webservice之使用jaxb把xml转换Object或把对象转换成xml文件

    3. 解析XML:有了Java类,我们就可以使用JAXB提供的`Unmarshaller`接口将XML文档解析成Java对象。以下是一个简单的示例: ```java JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Unmarshaller ...

    jaxb (XML操作)

    2. **实例化(Unmarshalling)**:当需要将XML数据转换为Java对象时,JAXB使用Unmarshaller接口解析XML文档,生成对应的Java对象。这个过程是将XML数据"反序列化"为可操作的Java对象。 3. **序列化(Marshalling)*...

    JAXB与xml相互转换实例

    - **性能优化**:由于是编译时绑定,JAXB转换过程通常比运行时解析XML快。 - **易于维护**:当XML Schema更改时,只需要重新生成Java类,无需修改大量代码。 然而,JAXB也有一些局限性,例如不支持某些复杂的XML...

    使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

    - JAXB解析:如果XML文件与Java对象模型有明确的一对一关系,JAXB提供了一种更便捷的方法。使用`Unmarshaller`可以从XML文件中创建Java对象,而`Marshaller`可以将Java对象转换回XML。 2. **导入数据到MySQL**: ...

    Java动态解析XML

    在`analysisXml`方法中,开发者使用了JDOM库来解析XML。JDOM是一个Java API,用于处理XML文档,它提供了构建、修改和操作XML文档的能力。以下是方法的主要步骤: 1. 创建一个`StringReader`对象,用于读取XML字符串...

Global site tag (gtag.js) - Google Analytics