我需要处理大型 XML 文件,因此我决定从 DOM 解析器迁移到 VTD-XML。
当我使用 Java 的 DOM 解析器时,我可以从任何节点而不是从根节点评估 XPath 查询。看XPath.evaluate原型(prototype):
Object evaluate(String expression,
Object item,
QName returnType)
throws XPathExpressionException
Object item
是起始上下文(例如,节点)。这非常有用。
但我找不到在 VTD-XML 中执行相同操作的方法。我已经阅读了它的API并阅读了很多示例,例如this one ,但任何地方的查询都是从根执行的。
如何做到这一点?
最佳答案
好吧,看来我明白了:实际上,XPath 查询总是相对于当前 VTDNav
的光标位置执行。
查看this example ,查找“嵌套 XPath 支持”部分。
关于java - VTD-XML:如何不从根元素执行 XPath 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14176020/