简单的问题!我有这样一个类,如果属性为空(或者只是null),则该属性不应出现在生成的XML文件中
XML文件:(注意属性abc中的空字符串,我不想要那样的东西!)
<root abc="">
<example>somethin</example>
</root>
Java Class
@Root
public class Data {
@Element(name="example">
private String value;
@Attribute(name="abc", required=false)
private String s;
public String getString() {
return s;
}
我尝试使用@Convert,但它仅适用于@Element ...有没有办法在xml文件为空时删除该属性?
答案 0 :(得分:0)
使用自定义XMLAdapter:
public class ExampleAdapter extends XmlAdapter<String, String> {
@Override
public String marshal(String exampleString) throws Exception {
return exampleString;
}
@Override
public String unmarshal(String exampleString) throws Exception {
if (exampleString.isEmpty()) {
return null;
}
return exampleString;
}}
然后将您的财产与之关联起来:
@XmlAttribute
@XmlJavaTypeAdapter(ExampleAdapter.class)
public void setExample(String example) {
this.example = example;
}