我有以下使用Java
的{{1}}方法:
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();
}
。
我是XQuery的初学者,如何更改此Xquery以获取其他参数:name
我的方法现在变为:
price
答案 0 :(得分:1)
只需将条件包含在XPath中,例如:
format("//Products/Product[name='%s' and price='%s']/attribute",
StringEscapeUtils.escapeXml(nameToQueryFor),
StringEscapeUtils.escapeXml(priceToQueryFor))
查询的确切语法当然取决于您的XML文档。