2013-02-04 27 views
0

試想一下,一個使用的JXPath作爲訪問語言到具有代表是不切實際的大或昂貴的內存來保存收藏某些節點樹 - 例如,如何在jxpath中實現昂貴的查詢?

.../customers[id=12345] 

當客戶真的在數據庫,而且他們中有很多人。我不需要人們可以想象的所有查詢的完整通用性 - 只是像這樣的幾種索引良好的查詢。

是否有一種實用的方法來實現這些使用jxpath的自定義功能?如果是這樣,你能指點我的例子,相關文件等?

回答

1

看看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,如果你需要,可以給你的上下文對象等