1

需要从 ksh 脚本中解析一些基本的 XML(一个根元素,3-4 个子元素,每个 1-3 个属性)(理想情况下坚持使用 ksh,因为脚本已经存在并且它只是试图读取一些在 XML 中创建的额外配置)另一个程序)。

我知道我可以使用 sed 并进行模式匹配,但考虑到输入 XML 可能会更改并且属性可能会在各种子元素(或新子元素)上重复,这并不是万无一失的。

到目前为止,我正在考虑使用针对 XML 的 XSLT 来提取 ksh 脚本作为单个字段关心的少数属性(针对特定元素)。鉴于我们是数据库驱动的产品,我可以为此使用 Oracle,并且 Oracle 将始终安装在我们的系统上,但这似乎有点笨拙。

以跨平台方式从输入 XML 中提取特定属性的任何其他安全方法不需要访问第 3 方解析器/转换器?

4

4 回答 4

1

如果将其全部保存在 shell 脚本中很重要,您可能想看看这个纯 bash 实现。

也就是说,其他脚本语言(如 Python 和 Perl)也具有高度可移植性,会让您的生活更轻松。例如, Perl 的XML::Twig模块带有一个名为“xml_grep”的最终用户脚本,它已经可以通过--text_only选项来提取从复杂搜索中找到的节点的文本。修改它以返回指定的属性应该不会那么难。

于 2008-10-11T16:29:32.713 回答
1

根据您对“解析”的含义,XMLStarlet可能是一个不错的选择。它完全由命令行驱动,支持选择和编辑 XML 文件以及 XSLT。

于 2008-10-14T18:01:16.223 回答
0

不能完全在 ksh 中完成,但尝试 python xml?

如果你想要轻量级,你可以试试 libxml2 和一个小的 C 程序。

于 2008-09-15T13:16:38.867 回答
0

而是使用CSV进行解析,不仅可以简化逻辑,而且可以轻松实现从xls到csv的转换。

于 2009-12-07T11:43:41.230 回答