Используя SimpleXML, как игнорировать элементы xml, которых у меня нет в классе объектов при десериализации

Я использую SimpleXml на Android для десериализации xml, который я не контролирую. Теперь, каждый раз, когда xml изменяется, он тормозит мое приложение, потому что у меня нет нового элемента, определенного в моем классе объектов. Можно ли указать SimpleXML, чтобы игнорировать эти карты? Посмотрел документацию и не нашел ничего, чтобы помочь мне ее решить.

Solutions Collecting From Web of "Используя SimpleXML, как игнорировать элементы xml, которых у меня нет в классе объектов при десериализации"

Я уверен, что вы можете обойти строгое сопоставление, заменив ваше регулярное объявление @Root(strict=false) , что устранит требование, чтобы каждый элемент соответствовал полю в определении вашего класса. Точнее, из документации:

Это используется для определения того, должен ли отображаемый объект обрабатываться строгим образом. Строгий синтаксический анализ требует, чтобы каждый элемент и атрибут в документе XML соответствовали полю в схеме класса. Если элемент или атрибут не соответствует полю, синтаксический анализ не выполняется с исключением. При установке строгого синтаксического анализа на значение false данные в исходном XML-документе должны быть пропущены во время десериализации.

Также приведен пример, приведенный в списке руководств на сайте проекта Simple XML.

Вы можете указать строгий режим, который будет отключен для всех тегов для определенного read , добавив «false» в качестве последнего параметра. Также из их документации :

Если существует более одного объекта, который требует свободного отображения, то использование аннотации Root не может быть идеальным решением. В таком сценарии у самого персистского может быть предложено выполнить свободное отображение. Просто передайте логическое значение для метода чтения, указывающего необходимый тип отображения. По умолчанию persister использует строчное сопоставление, которое может быть переопределено на основе объекта по объектам с использованием аннотации Root, как показано в приведенном выше примере. Однако это значение по умолчанию можно переопределить, как показано в приведенном ниже фрагменте кода.

 Contact contact = serializer.read(Contact.class, source, false);