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。
给定一个男性和女性的 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。