java - 简单框架 XML 删除空属性

标签 java xml

简单的问题!我有这样一个类,如果该属性为空(或只是 null),那么该属性根本不应该出现在生成的 XML 文件中

XML 文件:(注意属性 abc 中的空字符串,我不想要这样的东西!)

  <root abc="">
     <example>somethin</example>
     </root>

Java 类

 @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文件为空时删除该属性?

最佳答案

使用自定义 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;
}}

然后将您的属性(property)与其关联起来:

@XmlAttribute
@XmlJavaTypeAdapter(ExampleAdapter.class)
public void setExample(String example) {
    this.example = example;
}

关于java - 简单框架 XML 删除空属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30201938/

相关文章:

java - 微服务 : Embedded tomcat vs standalone tomcat : Difference

javascript - 通过 JavaScript 返回整个 XML 文件而不是仅返回解析后的值?

java - PagerAdapter 中的 ImageButton onclick。需要转到另一个类/XML 文件。错误

java - org.xml.sax.SAXParseException : The reference to entity "T" must end with the ';' delimiter

java - 在Java中对一个大文件进行排序

java - 如果使用 Android 适配器,如何设置数组中的文本颜色?

java - 在 Java Rundeck Plugin 中添加对 jar 的依赖

java - 为什么会出现此错误 :java.net.PlainSocketImpl.checkNotClosed(PlainSocketImpl.java :116)?

python - 如何使用python将嵌套子节点添加到xml文档中的父节点?

javascript - 如何使用 Cheerio 和 XML 数据 (JavaScript) 获取标签名称?