使用jaxb转换复杂的XML

最近工作中遇见了一个报文处理。
XML报文是这样的:

<Tag>
<Definition name="type">text</Definition>
<Definition name="key">vehicleFrameNo</Definition>
<Definition name="label">车架号</Definition>
<Definition name="value"></Definition>
<Definition name="dataUrl"></Definition>
<Definition name="checkUrl"></Definition>
</Tag>

我想用Java的jaxb转换成一下类,怎么处理?

@Setter
@Getter
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Tag {

    String type="text";
    String key="vehicleFrameNo";
    String label="车架号";
    String value="";
    String dataUrl="";
    String checkUrl="";

}

大家帮帮忙啊?

阅读 3.3k
1 个回答

java实体转换xml跟 xml转换java实体

public static <T> T parseXML(Class<T> clazz, String context) {

    T result = null;
    Locale.setDefault(Locale.ENGLISH);
    try {
        StringReader reader = new StringReader(context);
        JAXBContext jc = JAXBContext.newInstance(clazz);
        Unmarshaller u = jc.createUnmarshaller();
        result = (T) u.unmarshal(reader);
        reader.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}

public static String convertObjectToXml(String xmlEncoding, Object obj, Class<?> clazz) {
    JAXBContext jaxbContext = null;
    StringWriter outPutSW = new StringWriter();
    try {
        jaxbContext = JAXBContext.newInstance(clazz);
        Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
        if (!"UTF-8".equals(xmlEncoding))
            jaxbMarshaller.setProperty("jaxb.encoding", xmlEncoding);

        jaxbMarshaller.marshal(obj, outPutSW);
        return outPutSW.toString();
    } catch (JAXBException e) {
        e.printStackTrace();
    }
    return "";
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题