Как игнорировать неиспользуемые элементы 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?
Ответы
Ответ 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)