java - : SAX, DOM 或 xpath 哪个解析器?

标签 java xml

我有 xml,我在其上运行查询,如下所述。哪种解析器(sax、DOM 或 xpath)最适合通过 id 检索查询节点?

您能否用一些示例代码向我解释一下,这对我有很大帮助?

我想编写一个通用类,它通过 id 读取查询并将参数传递给它。由于每个查询可能返回一组不同的值,因此在执行查询后返回值的最佳方式是什么?

<?xml version="1.0" encoding="UTF-8"?>
<queries>
    <query id="getUserByName">
        select * from users where name=?
    </query>
    <query id="getUserByEmail">
        select * from users where email=?
    </query>
</queries>

最佳答案

这主要取决于用例。

如果一般来说,SAX Parser 适合解析大文件,而 dom parser 则适合解析替代文件。

原因是 dom 解析器 在解析大文件/输入流时最终占用了足够的内存。

在我看来,需要有一定的经验才能最好地利用 Sax Parser。相对而言dom解析更容易学习和使用。

或者 Apache commons-digester如果用例允许,可以是替代建议,这比 sax 更容易并且在内部使用 sax。

并且 xpath 不是解析器。

<小时/>

对于您的情况,您不需要解析器。我认为您正在寻找 xpath 来使用 xpath 检索 sql 查询。

如果您需要为简单的 xml 生成新的 xml,您可以手动执行此操作。我现在无法建议任何更好的替代方案。

关于java - : SAX, DOM 或 xpath 哪个解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11760164/

相关文章:

java - BorderPane 重叠内容

c# - 我如何使用 C# 一次读取 xml 中提到的所有属性

java - 是什么阻止我的 XML 文件更新?

java - 动态添加 TextInputLayout 抛出异常

java - 填充实体后为空下拉列表

java - 无法从远程机器联系 EJB

python - OpenERP 7 登录流程

c# - 将 Linq 转换为 XSLT

java - 将 Java 对象图保存为 XML 文件

java - maven 使用 --add-exports 运行和构建