如何使用JAXB删除XML中的标记

我正在使用JAXB将java对象转换为xml文件。

在我的XML文件中,我需要删除标记 不使用XSLT。

例如:删除标签订单

  12324   

例外结果:

  12324  

我可以建议你“天真”的做法。

可以使用JAXB批注@XmlElementWrapper配置包装器标签orders 。 因此,您可以创建2个模型:一个包含此标记,另一个不包含此标记。 您可以使用包含此标记的模型来解析数据,然后将数据复制到不包含此标记的模型,然后使用它进行序列化。

 @XmlRootElement(name = "index-annotations") public class OrderList { private Collection orderIds; @XmlElement(name = "orderid", type = Integer.class) public Collection getOrderId() { return orderIds; } } @XmlRootElement(name = "index-annotations") public class OutputOrderList extends OrderList { @Override @XmlElement(name = "orderid", type = Integer.class) @XmlElementWrapper(name="orders") public Collection getOrderId() { return orderIds; } } 

显然,这个解决方案包含一种重复的代码,但是由于注释有效性的编译时validation,因此使用XML配置2个模式可能更好。