Java tutorial
//package com.java2s; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.StringReader; import java.util.HashMap; import java.util.Map; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; public class Main { private static Map<Class<?>, Unmarshaller> uMap = new HashMap<Class<?>, Unmarshaller>(); /** * XML to Object * @param <T> * @param clazz * @param xml * @return */ public static <T> T convertToObject(Class<T> clazz, String xml) { return convertToObject(clazz, new StringReader(xml)); } /** * XML to Object * @param <T> * @param clazz * @param inputStream * @return */ public static <T> T convertToObject(Class<T> clazz, InputStream inputStream) { return convertToObject(clazz, new InputStreamReader(inputStream)); } /** * XML to Object * @param <T> * @param clazz * @param reader * @return */ @SuppressWarnings("unchecked") public static <T> T convertToObject(Class<T> clazz, Reader reader) { try { if (!uMap.containsKey(clazz)) { JAXBContext jaxbContext = JAXBContext.newInstance(clazz); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); uMap.put(clazz, unmarshaller); } return (T) uMap.get(clazz).unmarshal(reader); } catch (JAXBException e) { e.printStackTrace(); } return null; } }