当我使用JAXB编组
java对象时,我得到了xml元素
<error line="12" column="" message="test" />
但我想要xml如下
<error line="12" message="test" />
如果列值为空,那么我需要获取如上所示的xml,否则我需要获取元素中的column属性.
有没有办法得到它?
如果相应的字段/属性包含空字符串值,则只会使用空字符串值对属性进行编组.如果该值为null,则不会对该属性进行编组.
根
package forum13218462; import javax.xml.bind.annotation.*; @XmlRootElement public class Root { @XmlAttribute String attributeNull; @XmlAttribute String attributeEmpty; @XmlAttribute(required=true) String attributeNullrequired; }
演示
package forum13218462; import javax.xml.bind.*; public class Demo { public static void main(String[] args) throws Exception { JAXBContext jc = JAXBContext.newInstance(Root.class); Root root = new Root(); root.attributeNull = null; root.attributeEmpty = ""; root.attributeNullrequired = null; Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true); marshaller.marshal(root,System.out); } }
产量
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <root attributeEmpty=""/>