Парсим XML в Android с помощью XMLPullParser - javadevblog.com

Парсим XML в Android с помощью XMLPullParser

В этом уроке мы научимся парсить XML файлы на примере простого приложения для Android. Для начала проведем краткое ознакомление с возможностями обработки XML в Java и посмотрим на стандартные средства Android системы для парсинга XML.

Средства обработки XML в Java

Давайте бегло пробежимся по XML и существующим инструментам. Слово XML означает расширяемый язык разметки, который используется для создания и удобной обработки документов. Для работы с XML в Java есть множество инструментов и библиотек. Давайте рассмотрим некоторые типы парсеров XML файлов:

DOM Парсер использует подход синтаксического анализа XML-документов в виде древовидной структуры, когда весь XML файл валидируется и загружается в память. Затем начинается разбор документа. Парсинг происходит от исходного узла до конечного узла. В целом этот подход медленнее, чем два следующих.

SAX парсер основан на событиях: в памяти ничего не сохраняется — за счет этого повышается производительность. SAX начинает разбор сверху вниз и не имеет возможности разбирать отдельные узлы. XMLPullParser очень похож на SAX, однако его преимуществом является то, что он может анализировать отдельные узлы.

В Android по умолчанию используется именно XMLPullParser.

Пример использования XMLPullParser в Android

Нам понадобится любой XML файлик с каким-то содержимым, например:

Этот файлик нам нужно положить в папку assets. Вам необходимо создать эту папку в проекте Android Studio и создать файлик students.xml с таким содержимым, как показано выше:

assets-in-android-studio

Папка assets с файликом students.xml

Теперь подготовим модель, который будет представлять информацию об одном элементе Student:

Теперь посмотрим на файл компоновки activity_main.xml:

Как видите, он достаточно прост и содержит всего один виджет TextView внутри компонента RelativeLayout.

Следующим шагом будет код для разбора XML файла с помощью XMLPullParser. Напишем его в прямо MainActivity:

Обратите внимание! В коде выше мы использовали модификатор поведения парсера, а именно parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);  Эта функция определяет, обрабатывает ли анализатор пространств имен.

Пояснение к коду. Как видно из кода выше, мы проходим в while цикле по файлу до события, которое означает конец файла (XmlPullParser.END_DOCUMENT). В каждой итерации мы указали события, которые нам нужно обрабатывать (XmlPullParser.START_TAG, XmlPullParser.END_TAG и т.д.). Мы обрабатываем события и сохраняем нужные нам значения в список ArrayList. Результат разбора печатаем в TextView виджете.

Результат парсинга XML файла с помощью XMLPullParser:

xmlpullparserapp

Экран приложения с результатами парсинга XML файла с помощью XMLPullParser

Читайте подробнее об обработке XML в Java и Android.

Скачать рабочий Android проект со всеми кодами можно здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *