在XQuery中使用多个参数?

时间:2016-10-17 11:23:48

标签: java xml xpath xquery

我有以下使用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

1 个答案:

答案 0 :(得分:1)

只需将条件包含在XPath中,例如:

format("//Products/Product[name='%s' and price='%s']/attribute",
  StringEscapeUtils.escapeXml(nameToQueryFor),
  StringEscapeUtils.escapeXml(priceToQueryFor))

查询的确切语法当然取决于您的XML文档。