我有一组XML文件,其中一些非常大(最多约5000万个元素节点).我正在使用它xmllint来验证这些文件,由于流API,它甚至可以很好地工作.
xmllint --loaddtd --stream --valid /path/to/huge.xml
Run Code Online (Sandbox Code Playgroud)
我最近了解到,xmllint它还能够执行命令行XPath查询,这非常方便.
xmllint --loaddtd --xpath '/root/a/b/c/text()' /path/to/small.xml
Run Code Online (Sandbox Code Playgroud)
但是,这些XPath查询不适用于巨大的XML文件.一段时间后我才收到"被杀"的消息.我尝试启用流式传输API,但这只会导致无输出.
xmllint --loaddtd --stream --xpath '/root/a/b/c/text()' /path/to/huge.xml
Run Code Online (Sandbox Code Playgroud)
有没有办法在使用XPath查询时启用流模式xmllint?是否有其他/更好的方法可以对巨大的XML文件执行命令行XPath查询?