Intereting Posts
OnItemClickListener в ListView внутри фрагмента не работает Левый значок в TextInputLayout Текстовый редактор макета ADT eclipse xml – часто прерывается до закрытия файла и повторного открытия Android: как мне форматировать номер как телефон с круглыми скобками Как проверить, может ли какое-либо намерение быть обработано из какой-либо деятельности? Как получить статистику сетевого трафика для приложений потоковой передачи видео на Android? Украшение RecyclerView (с помощью GridLayoutManager) для отображения разделителя между элементами Круговой градиент в android CursorLoader, получить URI для локальной базы данных Тестирование геообработки с помощью Google Play Services 6.5. + Круговой индикатор выполнения (для таймера обратного отсчета) Утечка памяти Android в службе уведомлений «Активность по умолчанию не найдена» для загружаемого приложения, созданного с помощью шаблона Android Studio Проблемы с установкой API Android 4.2 Unit Test для Android Fragment

Используя 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);