Java-библиотека для разбора, сбора данных, редактирования и очистки реального HTML с помощью DOM, CSS-селекторов и XPath.
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
Установите пакет etree с помощью go get
go get github.com/beevik/etree - 2
Создайте новый XML-документ и выведите его в stdout в программе на Go, как показано в примере создания в README
Темы
Частые вопросы
- Что такое 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 обновляется ежедневно.
Похожие проекты
Быстрая библиотека в стиле jQuery для разбора и обработки HTML- и XML-документов на сервере и в браузере.
Рендерер трассировки путей для three.js на WebGPU, использующий three-mesh-bvh для создания физически корректных изображений в браузере.
Кроссплатформенные библиотеки классов C++ для сетевых приложений: HTTP, сети, базы данных, XML/JSON и логирование.
API-шлюз с открытым исходным кодом для проксирования REST- и SOAP-сервисов, развертывания по OpenAPI, преобразования WSDL в OpenAPI, защиты через OAuth2/JWT и валидации сообщений.
Редактор JSON с открытым исходным кодом: превращает JSON, YAML, CSV и XML в интерактивные графы, конвертирует форматы и генерирует код.