Simple Framework XML删除空属性

时间:2015-05-12 21:42:36

标签: java xml

简单的问题!我有这样一个类,如果属性为空(或者只是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文件为空时删除该属性?

1 个答案:

答案 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;
}