我之前使用过 xmlstartlet 来处理 XML 文件。您可以给它一个简单的命令行,它会(在内部)生成一个 XSLT 模板并将其应用于 XML 文件。
但是现在我有一个很大的 XML 文件,所以我真的需要为此使用 SAX,而不是 XSLT。与其编写一个简单的程序来执行此操作,我想知道是否有更简单的方法,从命令行获得一个非常简单的 SAX 解析器。您可以给它一些选项,它会沿着您的 XML 文件快速运行并从中打印出一些结构化数据。
我之前使用过 xmlstartlet 来处理 XML 文件。您可以给它一个简单的命令行,它会(在内部)生成一个 XSLT 模板并将其应用于 XML 文件。
但是现在我有一个很大的 XML 文件,所以我真的需要为此使用 SAX,而不是 XSLT。与其编写一个简单的程序来执行此操作,我想知道是否有更简单的方法,从命令行获得一个非常简单的 SAX 解析器。您可以给它一些选项,它会沿着您的 XML 文件快速运行并从中打印出一些结构化数据。
同样,我有 1.1G 的 xml 文件。
使用 xsltproc 占用 6G 内存,但完成.
我也试过撒克逊,但内存不足并失败。
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
最后我们听从了 danglund 的建议,使用了 Python、ATM。
不确定您要提取什么以及如何提取(因为使用 sax,您需要自己完成所有操作) - 所以“配置”非常复杂,因此 afaik 没有命令行工具,只有让您可以使用 sax 的编程语言。
你的xml有多大?也许http://ofb.net/~egnor/xml2/可以提供帮助(也取决于您的 xml.