MarkLogic 8 - 动态XPath

时间:2015-08-04 15:32:56

标签: xpath marklogic

我有一个报告要求,除了一些 XPath 表达式之外,查询将完全相同,具体取决于where子句中需要过滤的列。

  

其中$ record / firstName eq $ firstName

VS

  

其中$ record / lastName eq $ lastName

如何使用动态 XPath ,以便我可以为两者使用相同的代码并将路径作为参数传递?

2 个答案:

答案 0 :(得分:2)

听起来你可以在这种情况下使用xdmp:unpath()

答案 1 :(得分:1)

查询和XPath根本不同:

  • 查询在命名索引中查找单词或值以检索文档。
  • XPath在检索到的JSON或XML文档中查找节点。

XPath的一个子集(称为可搜索表达式)可以被视为幕后查询,但在这些情况下XPath没有特别的优势 - 同样的事情可以表示为查询。

将其作为上下文,一种可能性是动态构造查询,嵌套元素或JSON范围(也称为容器)查询来表达路径。那会满足你的要求吗?如果没有,你可以扩展用例吗?

需要注意的一点是:对于精确范围查询,您必须打开位置或执行过滤查询。

希望有帮助,