在 dom4j 网站上它说“SAXReader 从 SAX 解析事件创建 DOM4J 树。”。这是什么意思?SAXReader 是创建完整 XML 文件树的 DOM 解析器,还是像 SAX 解析器一样按顺序处理 XML 文档?
问题 2:我可以在 SAXReader 中使用 XPath 查询。XPath 与 SAX 或 DOM 解析器兼容吗?
dom4j 的全部意义在于它是 DOM 的替代树模型。仅解析整个 DOM 以将其转换为 dom4j 是没有任何意义的。无论如何,此页面清楚地表明 SAX 解析器用于生成 dom4j。
回复:您的 XPath 问题。一般来说,您确实需要一个树模型来运行 XPath。这意味着类似于 DOM、dom4j、jdom 或 xom。这些都是各种不同的“xml 文档对象模型”。SAX 是完全不同的东西——它只是一个没有对象模型的事件流。因此正确的思维模型是:使用 SAX 解析器生成对象模型,然后针对该对象模型运行 XPath。当然,您还可以做其他事情,但这是这三种技术可以结合在一起的一种自然方式。