0

我正在尝试在 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 我想要这样的 xpath /a/b/(ID1/VERSION1 or ID2/VERSION2)//*[@name= “某个名字”]。

4

2 回答 2

1

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

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

于 2012-07-17T16:56:25.953 回答
0

编辑

该线程表明 Jackrabbit 2.0 中提供了类似联合的功能,但更早版本没有。

[联接] 无法使用 JCR Xpath 或 JCR-SQL,但使用 JCR 2.0 (JCR-SQL2) 中的新查询模型。自 CQ 5.3 / CRX 2.0 / Jackrabbit 2.0 起支持此功能。请注意,这些连接并没有进行太多优化。

实际上,XPath 在 JCR 2.0 中已被弃用

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

于 2012-07-17T13:45:59.093 回答