我有一个XML文件的集合,其中一些非常大(最多约5000万个元素节点)。我正在使用xmllint
验证这些文件,即使对于那些巨大的文件,它也能很好地工作,这要归功于流式API。如何在巨大的XML文件中执行命令行XPath查询?
xmllint --loaddtd --stream --valid /path/to/huge.xml
我最近了解到xmllint
也能够做的命令行XPath查询,这是非常方便的。
xmllint --loaddtd --xpath '/root/a/b/c/text()' /path/to/small.xml
但是,这些XPath查询不适用于巨大的XML文件。过了一段时间我刚刚收到“Killed”消息。我试图启用流媒体API,但这只会导致没有输出。
xmllint --loaddtd --stream --xpath '/root/a/b/c/text()' /path/to/huge.xml
有没有办法使用xmllint
做XPath查询时启用流模式?是否有其他/更好的方法来为大型XML文件进行命令行XPath查询?
尝试'--shell'选项交互(只用xml文件路径) – flafoux
我试图打开交互shell的一个巨大的文件,但它会崩溃(“封杀”,就像在在不能使用'--stream'的情况下)才能输入任何命令。 – MRA
http://superuser.com/questions/543881/efficiently-extracting-a-few-data-from-a-large-xml-file –