如何在反序列化文档时忽略未使用的XML元素?

36

我正在使用SimpleXml来(反)序列化POJOs。现在,我有一个大的XML文件,其中包含一些不需要的元素。例如,对于这个XML:

<Root>
   <Element>Used</Element>
   <Another>Not used</Another>
<Root> 
我想创建一个看起来像这样的POJO:
@Root
class Root{
    @Element
    private String element;
}

问题是我遇到了这个异常:

simpleframework.xml.core.ElementException: Element 'Another' does not have a
match in class blah.blah.Blah at line 1

那么...我该如何配置POJO以便正确解析XML?

2个回答

87

在Root注解中将strict设置为false,以忽略类中未出现的任何XML元素或属性。

@Root(strict=false)

或者,在使用序列化器读取xml时将strict设置为false:

Root root = serializer.read(Root.class, source, false);

4

你可以在单个元素中添加(required=false)

@Element(required=false)
private int statusCode;

如果您有更多的元素,请使用:

 @Root(strict=false)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接