metadata - 从 Magnolia jcr 中的 xpath-query 过滤 "MetaData"-节点

标签 metadata jackrabbit jcr xpath-2.0 magnolia

我在 Magnolia 中过滤 Jackrabbit jcr 的特定节点时遇到问题。

当我提交以下查询时://element(*,standort)//*

我得到:

33 nodes returned in 18ms
/standort/Standorte/MetaData
/standort/Standorte/standort-de
/standort/Standorte/standort-de/MetaData
/standort/Standorte/standort-de/Teststandort
/standort/Standorte/standort-de/Teststandort/MetaData
/standort/Standorte/standort-de/Hauptwerk-Köln
/standort/Standorte/standort-de/Hauptwerk-Köln/MetaData
/standort/Standorte/standort-de/Geschäftsstelle-Berlin
/standort/Standorte/standort-de/Geschäftsstelle-Berlin/MetaData
/standort/Standorte/standort-de/Geschäftsstelle-Frankfurt
/standort/Standorte/standort-de/Geschäftsstelle-Frankfurt/MetaData
/standort/Standorte/standort-de/Geschäftsstelle-Hamburg
/standort/Standorte/standort-de/Geschäftsstelle-Hamburg/MetaData
/standort/Standorte/standort-de/Geschäftsstelle-Hannover
/standort/Standorte/standort-de/Geschäftsstelle-Hannover/MetaData
/standort/Standorte/standort-de/Geschäftsstelle-Köln
/standort/Standorte/standort-de/Geschäftsstelle-Köln/MetaData
/standort/Standorte/standort-de/Werk-Leipzig
/standort/Standorte/standort-de/Werk-Leipzig/MetaData
/standort/Standorte/standort-de/Geschäftsstelle-München
/standort/Standorte/standort-de/Geschäftsstelle-München/MetaData
/standort/Standorte/standort-de/Geschäftsstelle-Stuttgart
/standort/Standorte/standort-de/Geschäftsstelle-Stuttgart/MetaData
/standort/Standorte/standort-de/Gelsdorf-(Mischwerk)
/standort/Standorte/standort-de/Gelsdorf-(Mischwerk)/MetaData
/standort/Standorte/standort-de/Gelsdorf-(Handläufe)
/standort/Standorte/standort-de/Gelsdorf-(Handläufe)/MetaData
/standort/Standorte/standort-de/KB-Roller-Tech-Kopierwalzen-GmbH
/standort/Standorte/standort-de/KB-Roller-Tech-Kopierwalzen-GmbH/MetaData
/standort/Standorte/standort-en
/standort/Standorte/standort-en/MetaData
/standort/Standorte/standort-en/Böttcher-UK-Ltd-
/standort/Standorte/standort-en/Böttcher-UK-Ltd-/MetaData

但我只想要节点:

/standort/Standorte/standort-de/Teststandort
/standort/Standorte/standort-de/Hauptwerk-Köln
/standort/Standorte/standort-de/Geschäftsstelle-Berlin
/standort/Standorte/standort-de/Geschäftsstelle-Frankfurt
/standort/Standorte/standort-de/Geschäftsstelle-Hamburg
/standort/Standorte/standort-de/Geschäftsstelle-Hannover
/standort/Standorte/standort-de/Geschäftsstelle-Köln
/standort/Standorte/standort-de/Werk-Leipzig
/standort/Standorte/standort-de/Geschäftsstelle-München
/standort/Standorte/standort-de/Geschäftsstelle-Stuttgart
/standort/Standorte/standort-de/Gelsdorf-(Mischwerk)
/standort/Standorte/standort-de/Gelsdorf-(Handläufe)
/standort/Standorte/standort-de/KB-Roller-Tech-Kopierwalzen-GmbH
/standort/Standorte/standort-en/Böttcher-UK-Ltd-

因此没有元数据节点和父节点。我需要 Standorte 下面的所有东西。 Standorte 的子级可以是 standort-destandort-en 类型。 我希望我能让我的问题更清楚。我在问题的最后一个版本中缩短了输出。到目前为止,我没有找到任何可以帮助我的 xpath 表达式。但这是由于我缺乏 xpath 知识。

提前致谢!

最佳答案

表达式

//element(*, standort)//*

选择文档中任意位置元素 (//element())已根据 standort 的模式定义类型定义成功进行验证。 (感谢@Alej 帮助更正此陈述及以下内容。)

因此,假设您已成功附加架构,那么基本上您将选择作为经过验证的 standort 元素的后代的每个元素。

尝试 XPath 表达式(更新):

/standort/Standorte/(standort-de | standort-en)/*

关于metadata - 从 Magnolia jcr 中的 xpath-query 过滤 "MetaData"-节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4448852/

相关文章:

R函数返回包的许可证?

java - Eclipse Juno 无法工作/打开

java - Spring 的长耳大野兔观察

java - 连接到 AEM 6.0 JCR : Precondition Failed

aem - 如何确定 JCR 属性是否为多值?

java - RDBMS、JCR、CMIS 之间丢失

MySQL:如果 meta_key 不存在则返回帖子

php - WordPress 元标记挑战

java - 将 CQ5 组件设置为可编辑或不可编辑

liferay - 如何将 jackrabbit 持久性从文件系统切换到数据库?