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

Как выполнить парсинг большого XML файла в Golang?

1. Создайте файл data.xml со следующим содержимым XML:

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

2. Создайте файл xml.go со следующим содержимым:

3. Запустите код через go run xml.go;
4. Посмотрите на результат в терминале:

xml golang

Пакет xml для парсинга XML файлов в Go

С помощью функции NewDecoder из пакета xml создается декодер для содержимого XML файла.

Через вызов метода Token для Decoder мы принимаем xml.Token. xml.Token является интерфейсом, что содержит тип токена. Поведение кода можно определить на основании типа. Код из примера выше проверяет, если парсируемый изначальный элемент xml.StartElement является одним из элементов <book>. Затем производится парсинг данных по частям в структуру Book. В таком случае позиция указателя в базовом Reader в Decoder перемещается через структуру данных, и парсинг может продолжаться.

Понравилась статья?

Поддержи наш проект, чтобы мы могли создать больше хорошего контента!