2

我们有一个需要转换为对象的 XML,反之亦然。像 Xstream 这样的东西。到目前为止,我们一直在使用 Xstream 来编组和解组对象/xml。但是问题是xstream中对应XML的对象,需要将所有的标签作为属性;否则,如果 XML 包含对象中不存在的任何额外标签;它炸弹。

或者,我们需要编写自定义转换器以确保操作按预期进行。还建议我使用 common digester 允许将 Xpath 从 XML 解析为对象。

我想知道最好的方法是什么;只要:

  1. 我只想将 XML 转换为 Object,反之亦然。
  2. 能够默默地忽略 XML 中映射对象中不存在的任何字段。

你有什么建议?

4

3 回答 3

2

你可能想看看这个问题......

使用开源 api 将 java 对象转换为 xml 的最佳方法是什么

这些是它列出的一些库...

于 2009-10-15T04:23:08.843 回答
2

您需要使用此处记录的自定义 MapperWrapper http://pvoss.wordpress.com/2009/01/08/xstream/

XStream xstream = new XStream() {
  @Override
  protected MapperWrapper wrapMapper(MapperWrapper next) {
    return new MapperWrapper(next) {
      @Override
      public boolean shouldSerializeMember(Class definedIn,
              String fieldName) {
        if (definedIn == Object.class) {
          return false;
        }
        return super.shouldSerializeMember(definedIn, fieldName);
      }
    };
  }
};

它唯一要做的就是告诉 XStream 忽略它不知道要处理的所有字段。

于 2010-02-23T23:55:01.057 回答
0

我建议使用http://simple.sourceforge.net/我使用注释来映射属性和元素,并具有“非严格”模式,使您能够从 XML 文档中读取,而忽略 Java 对象中不存在的所有属性和元素.

于 2010-01-20T14:14:33.257 回答