Sitecore 查询语法:Select 所有 parent 不叫 Jack 的女性后代

Sitecore query syntax: Select all female descendents whose parent isn't called Jack

给定一个男性和女性的 Sitecore 内容树(每个性别都有自己的模板)代表一个家谱,我如何 select 一个项目的所有女性后代 parent 不是使用 Sitecore 查询调用 Jack?

上下文:我的上下文项是 Bob 的 children 之一。我的查询不应该 return Bob 本人。 Bob 还有数百个兄弟和数千个后代,我真的不想出现在我的结果中。

查询应该 return:Sarah、Julie、Sue 和 Mary 但不是 Anne 或 Claire。

我可以 select Bob 的所有女性后代:

..//*[@@templateid='{在此处插入女性模板 ID}']

但是如何添加 parent name != Jack 子句?

如果你有一个 "family root" 节点本身不代表一个人,你可以这样做:

/path/to/family root//*[@@name != 'Jack']/*[@@templateid = '{template id}']

在您的情况下,您只想返回某个人的后代。该人本身不应包含在结果集中。在那种情况下,您评论中的方法就是要走的路:

..//*[../@@name != 'Jack' AND @@templateid = '{template id}']

这两个查询的结果都将包括 Mary,因为她的直接 parent 不叫 Jack。