Подтвердить что ты не робот

Как игнорировать неиспользуемые элементы XML при десериализации документа?

Я использую SimpleXml для (de) сериализации 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?

4b9b3361

Ответ 1

Задайте strict значение false в аннотации Root, чтобы игнорировать любые элементы XML или атрибуты, которые не отображаются в классе.

@Root(strict=false)

Альтернативно установите strict в значение false, когда вы читаете xml в serialiser:

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

Ответ 2

вы можете добавить (required = false) к одному элементу

@Element(required=false)
private int statusCode;

Если у вас больше элементов, используйте

 @Root(strict=false)