4

我有以下 XML 结构:

<keys>
   <key>
      <tag>
         someValue
      </tag>
   </key>
   <key>
      <tag>
         someValue
      </tag>
   </key>
</keys>

key元素在以下类的代码中表示:

public class Key {

    @Element(name = "tag")
    private String tag;
}

我的目标是将这些直接反序列化为List,如下所示:

Serializer serializer = new Persister();
List<Key> list = serializer.read(Key.class, inputStream); // pseudo code

我怎样才能用Simple做到这一点?

4

2 回答 2

4

像这样使用@ElementList 注解

@Root(name="keys")
public class KeyList {

    @ElementList(inline=true, entry="key")
    private List<Key> keys;

    public List<Key> getKeys() {
       return keys;
    }
}

然后

Persister persister = new Persister();
List<Key> keys = persister.read(KeyList.class, source).getKeys();
于 2013-08-06T15:12:43.780 回答
1

我建议使用 JAXB(用于 XML 绑定的 Java 架构)

这是几个教程的链接:

他们可以比我更好地解释它。但基本上你使用定义你的 xml 结构的 javax.xml.bind.annotation 包中定义的注释。然后创建一个简单的 JAXB Handler 类来处理编组和解组。

于 2013-08-05T17:31:54.037 回答