用于 XML 的 Grep 工具

Ada*_*tan 24 xml grep regex automation

我正在寻找一个很好的工具来对 XML 执行类似 grep 的操作 - 例如,仅提取某些属性。

Grep 本身无法处理它 - 任何 DFA 等效工具只能处理非递归匹配,而我的可能是递归的。

我试过xgrep,但它很不稳定,我想要一个稳定可靠的工具。

有什么建议吗?

编辑:我更喜欢在 Linux 下运行良好的开源工具。

Lud*_*erl 22

XMLStarlet(维基百科)是一个命令行工具,它接近于grep. 它是开源软件(MIT 许可),在 Linux 和 Windows 上运行良好。

XMLStarlet 网站对其进行了如下描述。

XMLStarlet 是一组命令行实用程序(工具),可用于使用简单的 shell 命令集转换、查询、验证和编辑 XML 文档和文件,其方式与使用 UNIX grep、sed、 awk、diff、patch、join 等命令。

Debian/Ubuntu 软件包名为xmlstarlet. 但要注意:与联机帮助页所说的相反,二进制文件xmlstarlet在 Debian/Ubuntu 中命名,而不是xml.

SourceForge 上也有 Windows 二进制文件。

有关不错的简介,请参阅 IBM 的开始使用 XMLStarlet


jwe*_*ede 5

各种语言中的XPath语法最适合在 xml 中查找内容。事实上,xgrep 的制造商推荐的工具之一基本上是一个接受 XPath 输入的 Perl XML 解析器。


Pet*_*sen 5

在 Linux 下工作的工具是xml_grep。它完全理解 XML 并且不是逐行工具。

xml_grep作为独立工具包含在XML::Twig包中。grepping 功能非常强大,因为它支持XPath规范。

示例命令行(从三部曲数据转储中提取二月中旬之后编辑的帖子):

xml_grep -p --cond="row[@LastEditDate>'2010-02-14']"  posts.xml  > lateEditedPosts.xml
Run Code Online (Sandbox Code Playgroud)

安装很容易。任何一个

  • sudo cpan -i "XML::Twig",如下面引用的 xml_grep 说明书中所述。

或者


更多信息:

我为xml_grep找到的最好的介绍是xml_grep cookbook,大约两页。其他: