marshaller
unmarshaller
在对应bean 添加@XmlRootElement(name = "xml")注解
public class XmlUtil {
/**
* XML转对象
*
* @param xmlStr
* @param t
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T xmlToBean(String xmlStr, Class<T> t) {
try {
JAXBContext context = JAXBContext.newInstance(t);
Unmarshaller unmarshaller = context.createUnmarshaller();
T ts = (T) unmarshaller.unmarshal(new StringReader(xmlStr));
return ts;
} catch (JAXBException e) {
e.printStackTrace();
return null;
}
}
/**
* XML转对象
*
* @param t
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T xmlToBean(InputStream input, Class<T> t) {
try {
JAXBContext context = JAXBContext.newInstance(t);
Unmarshaller unmarshaller = context.createUnmarshaller();
T ts = (T) unmarshaller.unmarshal(new InputStreamReader(input,
"UTF-8"));
return ts;
} catch (JAXBException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
/**
* 对象转XML
*
* @param out
* @param to
*/
public static String beanToXml(ByteArrayOutputStream out, Object to) {
try {
JAXBContext context = JAXBContext.newInstance(to.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(to, out);
return new String(out.toByteArray(), "UTF-8");
} catch (JAXBException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
}