XML 的 Grep 工具

XML 的 Grep 工具

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

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

我努力了查找,但是它相当不稳定,我想要一个稳定可靠的工具。

有什么建议吗?

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

答案1

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

XMLStarlet 网站描述如下。

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

Debian/Ubuntu 软件包名为xmlstarlet但请注意:与手册页所说的相反,二进制文件以 Debian/Ubuntu 命名xmlstarlet,而不是xml

SourceForge 上也有 Windows 二进制文件。

有关简介,请参阅 IBM 的开始使用 XMLStarlet(现在通过archive.org)。

答案2

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

答案3

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

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

示例命令行(从三部曲数据转储):

xml_grep -p --cond="row[@LastEditDate>'2010-02-14']"  posts.xml  > lateEditedPosts.xml

安装非常简单。

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

或者


更多信息:

我发现的最好的介绍xml_grepxml_grep 手册,约两页。其他:

答案4

XML间谍是一个很棒的工具,虽然有点贵。

相关内容