加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

JAXB解析XML,将XML转化为OBJECT

发布时间:2020-12-16 05:01:12 所属栏目:百科 来源:网络整理
导读:直接代码: package com.analysis.dome;import java.beans.XMLDecoder;import java.io.BufferedInputStream;import java.io.ByteArrayInputStream;import java.io.InputStream;import java.io.Serializable;import java.io.UnsupportedEncodingException;imp

直接代码:

package com.analysis.dome;

import java.beans.XMLDecoder;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;

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

public class Main {
	private static String xmlCoding="UTF-8";
	

	public static void main(String[] args) {
		String xml = "<?xml version="1.0" encoding="UTF-8"?><person><username>sunsz</username><age>26</age><sex>man</sex><personType>" +
				"<personType>工程师</personType><xxxx>123456</xxxx>" +
				"</personType></person>";
	       
		Person user = (Person) parseXmlDataObject(Person.class,xml);
		
		System.out.println(user.getUsername());
		System.out.println(user.getAge());
		System.out.println(user.getPersonType().getPersonType());
		System.out.println(user.getUsername());
		
		
	}
	
	//获取OBJECT 实例
	@SuppressWarnings("unchecked")
	private static Unmarshaller createUnMarshallerByType(Class type){
	   Unmarshaller unMar = null;
	   try {
	    JAXBContext jax = JAXBContext.newInstance(type);
	    unMar = jax.createUnmarshaller();
	   } catch (Exception e) {
	    e.printStackTrace();
	   }
	   return unMar;
	}
	
	@SuppressWarnings("unchecked")
	public static Object parseXmlDataObject(Class type,String xmlData){
	   if(xmlData==null || xmlData.trim().length()==0)
	    return null;
	   try {
	    Unmarshaller unMar = createUnMarshallerByType(type);
	    ByteArrayInputStream bais = new ByteArrayInputStream(xmlData.getBytes(xmlCoding));
	    return unMar.unmarshal(bais);
	   } catch (Exception e) {
	    e.printStackTrace();
	   }
	   return null;
	}
}
代码网上找的~,只为测试一点,当XML中有OBJECT不存在的属性时,是否报错。记录一下!


注意一点,OBJECT 需要配置 JAXB的注解。要不然会报错~~


注解介绍:http://www.52php.cn/article/p-nvdrazml-bh.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读