如何使用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个模式可能更好。