Repolode
beevik

beevik/etree

纯 Go 实现的轻量 XML 库,以元素树形式解析、查询、修改和输出 XML,支持类 XPath 路径查询。

Star
1,672
Fork
191
未关闭 Issue
4
最近提交
上个月

这是什么?

etree 将 XML 文档表示为元素树,便于在 Go 中遍历、查找和修改。它既可以从零创建文档,也可以从文件、字节切片、字符串或 io.Reader 读取内容,并支持以空格或制表符自动缩进后输出。

该库提供按子元素和属性选取的简单方法,以及类 XPath 的轻量路径查询。路径可预先编译以便重复使用,支持以双斜杠进行递归查找,也支持基于属性或带命名空间前缀的值进行条件过滤。其设计受 Python ElementTree 模块启发。

etree 使用纯 Go 实现,仅依赖标准库,底层基于标准库 encoding/xml,要求 Go 1.23 及以上版本。

核心功能

  • 01可从零创建 XML 文档,也可从文件、字符串、字节切片或 io.Reader 解析。
  • 02支持简单选择器和类 XPath 路径查询,包括递归查找与条件过滤。
  • 03路径可预先编译,便于重复查询。
  • 04输出时可用空格或制表符自动缩进。
  • 05纯 Go 实现,仅依赖标准库。

适用场景

  • 在 Go 服务中读取和修改 XML 配置文件。
  • 用 Go 代码生成 XML 文档,如feed或结构化导出数据。
  • 通过路径查询从较大的 XML 数据中提取特定值。

快速上手

  1. 1

    使用 go get 安装 etree 包

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

    在 Go 程序中按 README 示例创建 XML 文档并输出到标准输出

标签

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

常见问题

etree 是什么?
纯 Go 实现的轻量 XML 库,以元素树形式解析、查询、修改和输出 XML,支持类 XPath 路径查询。 etree 将 XML 文档表示为元素树,便于在 Go 中遍历、查找和修改。它既可以从零创建文档,也可以从文件、字节切片、字符串或 io.Reader 读取内容,并支持以空格或制表符自动缩进后输出。
etree 可以免费使用吗?用的什么许可证?
etree 以 BSD-2-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
etree 还在维护吗?
半年内有更新。etree 最近一次提交是在 2026年9月23日。
etree 适合用来做什么?
在 Go 服务中读取和修改 XML 配置文件。 用 Go 代码生成 XML 文档,如feed或结构化导出数据。 通过路径查询从较大的 XML 数据中提取特定值。
etree 怎么安装和运行?
使用 go get 安装 etree 包: go get github.com/beevik/etree 在 Go 程序中按 README 示例创建 XML 文档并输出到标准输出
在哪里获取 etree?
源代码和安装说明在 GitHub 上:https://github.com/beevik/etree

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目