1
私はXQuery
を使用して、次のJava
方法があります。私は現在、唯一つのパラメータ、すなわちname
を使用して照会しています見ることができるようにXQueryで複数のパラメータを使用していますか?
public String getLocationByName(String name) {
final String nameToQueryFor = name;
return engine.new Query<String>(MY_COLLECTION) {
@Override
protected String query(Collection collection) throws Exception {
XQueryService service = queryService();
ResourceSet resourceSet = service.query(
format("//Products/Product[name='%s']" +
"/attribute"
, StringEscapeUtils.escapeXml(nameToQueryFor)
));
List<String> results = newArrayList();
for (String resource : new IterableStringResources(resourceSet)) {
results.add(resource);
}
return results.get(0);
}
}.execute();
}
を。ただ、例えば、あなたのXPath、に条件が含ま
public String getLocationByNameAndPrice(String name)
http://exist-db.org/api/org/exist/xmldb/XQueryService.html#declareVariable(java.lang.String,%20java.lang.Object)を使用する方が、より安全で簡単な場合があります。 )を使用してクエリの変数を設定し、文字列の書式設定と連結の代わりに '// Products/Product [name = $ name]'を使用できるようにします。 –