Jackrabbit是否支持XPath联合(|)运算符?

时间:2012-07-17 12:40:16

标签: xpath jackrabbit

我正在尝试在2个不同的节点下搜索特定名称。这工作

/jcr:root/db067409/libraries/bd0b868d/_x0030_//*[@name="FIRST"]

但是当我尝试将它与第二个节点进行OR运算时......

/jcr:root/db067409/libraries/bd0b868d/_x0030_//*[@name="FIRST"]|/jcr:root/db067409/libraries/_x0033_78d57e4/_x0031_//*[@name="FIRST"]

我不再获得任何搜索结果。请有人指出我做错了什么。

我真正想做的是沿着这些方向;如果我有/ a / b / ID1 / VERSION1和/ a / b / ID2 / VERSION2我想要像这样的/ x /(ID1 / VERSION1或ID2 / VERSION2)的xpath // * [@ name = “某个名字”]。

2 个答案:

答案 0 :(得分:1)

答案是否定的。不幸的是,它没有像你期望的那样抛出UnsupportedOperationException。 Jira中有一个项目,但我猜他们忽略了它,因为Xpath现已弃用。

如果确实需要联合,请使用JCR_SQL2。

答案 1 :(得分:0)

修改

This thread表示Jackrabbit 2.0中有类似联合的功能,但不是更早。

  使用JCR无法实现[加入]   Xpath或JCR-SQL,但使用JCR 2.0中的新查询模型(JCR-SQL2)。   从CQ 5.3 / CRX 2.0 / Jackrabbit 2.0开始支持此功能。请注意   这些联接并没有得到很好的优化。

确实,XPath is deprecated in JCR 2.0

  

JCR 1.0定义了一种与JCR-SQL2不同的SQL方言,以及一种XPath方言。不推荐支持这些语言。