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

我正在使用SimpleXml来(取消)序列化POJO。现在,我有一个大的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?


答案 1

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

@Root(strict=false)

或者,当您在序列化程序中读取 xml 时,设置为 false:strict

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

答案 2

您可以将(必需=false)添加到单个元素

@Element(required=false)
private int statusCode;

如果您有更多元素使用

 @Root(strict=false)

推荐