Repolode
beevik

beevik/etree

Лёгкий пакет на чистом Go для разбора, поиска, изменения и записи XML в виде дерева элементов с запросами по путям, похожими на XPath.

Звёзды
1,672
Форки
191
Открытые issues
4
Последний коммит
в прошлом месяце

Что это?

etree представляет XML-документы в виде деревьев элементов, поэтому их удобно обходить, искать в них нужные элементы и изменять их в Go. Документ можно создать с нуля или прочитать из файла, среза байтов, строки либо io.Reader, а затем записать с необязательными отступами — пробелами или табуляцией.

Пакет предоставляет простые методы для выбора дочерних элементов и атрибутов, а также лёгкие запросы по путям, похожим на XPath. Пути можно скомпилировать заранее, чтобы многократно использовать их для поиска. Поддерживаются рекурсивный поиск с двойным слешем и предикаты, например сопоставление значений атрибутов или значений с префиксом пространства имён. При разработке пакета авторы вдохновлялись модулем ElementTree для Python.

etree написан на чистом Go, зависит только от стандартной библиотеки и построен поверх стандартного пакета encoding/xml. Требуется Go версии 1.23 или новее.

Ключевые возможности

  • 01Создаёт XML-документы с нуля или разбирает их из файлов, строк, срезов байтов и io.Reader.
  • 02Ищет элементы с помощью простых селекторов или запросов по путям, похожим на XPath, включая рекурсивный поиск и поиск с предикатами.
  • 03Предварительно скомпилированные пути позволяют эффективно выполнять повторные запросы.
  • 04Автоматически форматирует сериализованный вывод, добавляя отступы пробелами или табуляцией.
  • 05Написан на чистом Go и не имеет зависимостей за пределами стандартной библиотеки.

Сценарии использования

  • Чтение и изменение XML-файлов конфигурации в сервисе на Go.
  • Создание XML-документов, например лент или структурированных выгрузок, из кода на Go.
  • Извлечение нужных значений из больших XML-данных с помощью запросов по путям.

Быстрый старт

  1. 1

    Установите пакет etree с помощью go get

    go get github.com/beevik/etree
  2. 2

    Создайте новый XML-документ и выведите его в stdout в программе на Go, как показано в примере создания в README

Темы

#xml#go#xpath#xml-parser#dom#etree#path

Частые вопросы

Что такое etree?
Лёгкий пакет на чистом Go для разбора, поиска, изменения и записи XML в виде дерева элементов с запросами по путям, похожими на XPath. etree представляет XML-документы в виде деревьев элементов, поэтому их удобно обходить, искать в них нужные элементы и изменять их в Go. Документ можно создать с нуля или прочитать из файла, среза байтов, строки либо io.Reader, а затем записать с необязательными отступами — пробелами или табуляцией.
etree можно использовать бесплатно? Какая у него лицензия?
etree распространяется с открытым исходным кодом под лицензией BSD-2-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
etree всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в etree — 23 сент. 2026 г..
Для чего можно использовать etree?
Чтение и изменение XML-файлов конфигурации в сервисе на Go. Создание XML-документов, например лент или структурированных выгрузок, из кода на Go. Извлечение нужных значений из больших XML-данных с помощью запросов по путям.
Как установить etree?
Установите пакет etree с помощью go get: go get github.com/beevik/etree Создайте новый XML-документ и выведите его в stdout в программе на Go, как показано в примере создания в README
Где скачать etree?
Исходный код и инструкции по установке — на GitHub: https://github.com/beevik/etree

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Java-библиотека для разбора, сбора данных, редактирования и очистки реального HTML с помощью DOM, CSS-селекторов и XPath.

Бэкенд и API#java#html-parser#web-scraping
11,4 тыс.2,3 тыс.JavaMITАктивно поддерживаетсяОбновлён 3 дня назад

API-шлюз с открытым исходным кодом для проксирования REST- и SOAP-сервисов, развертывания по OpenAPI, преобразования WSDL в OpenAPI, защиты через OAuth2/JWT и валидации сообщений.

658+2 за неделю186JavaApache-2.0Обновлён вчера