xstream转换空标签问题?

新手上路,请多包涵

使用xstream会将内容为空的转换成空标签<age></age>,而我需要自关闭标签<age/>;有没有什么办法可以改变xstream的生成方法?或者将生成后的xml文件通过别的方法再转换一下?

阅读 1.6k
1 个回答

利用SingleValueConverter接口来实现吧:

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.converters.SingleValueConverter;

public class EmptyAttributeConverter implements SingleValueConverter {

    @Override
    public String toString(Object obj) {
        String value = (String) obj;
        if (value == null || value.isEmpty()) {
            return "/>";
        }
        return ">" + value + "</name>";
    }

    @Override
    public Object fromString(String str) {
        return str;
    }

    @Override
    public boolean canConvert(Class type) {
        return type.equals(String.class);
    }
}

public class Main {
    public static void main(String[] args) {
        XStream xstream = new XStream();
        xstream.registerConverter(new EmptyAttributeConverter());
        // ...
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题