java - 如何在 jxpath 中实现昂贵的查询?

标签 java jxpath

想象一下,我们使用 JXPath 作为访问一棵树的语言,该树具有某些代表集合的节点,这些集合在内存中保存起来非常大或昂贵,例如,

.../customers[id=12345]

客户实际上位于数据库中,而且数量不计其数。我不需要人们能想象到的所有查询的全部通用性 - 只需要像这样的几种索引良好的查询。

有没有一种实用的方法可以使用 jxpath 的定制功能来实现这些?如果是这样,您能给我指出示例、相关文档等吗?

最佳答案

看看the JXPath User's Guide 。您可以创建一个扩展函数,它将查询作为参数。

public static NodeSet getCustomers(String query){
    List<Customer> l=getCustomersFromMyDatabase(query);
    BasicNodeSet bns=new BasicNodeSet();
    putCustomersIntoNodeSet(bns,l);
    return bns;
}

你的 xpath 看起来像

getCustomers('id=123')

您还可以拥有ExpressionContext类型的第一个参数,它可以在需要时为您提供上下文对象等。

关于java - 如何在 jxpath 中实现昂贵的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14691565/

相关文章:

java - 通过Groovy脚本从 Artifactory 获取用于多个作业的最新内部版本号。

java - Kotlin 在 PasswordTransformationMethod 中崩溃,而 Java 工作正常

java - 无法将我的应用程序中的图像作为隐式 Intent 发送到外部应用程序

java jsonxpth 解析json跳转到节点

java - JXPath 可以按类型查找对象吗?

java - 是否可以使用 XSLT 和 JXPath 转换 javabean?

java - 将 Java 字符串转换为 ascii

java - 如何为单个对象添加连续 LOD?