我想使用查询获取当前路径下的所有页面,因为我需要对它们进行排序,以便使用查询。我使用下面的标准,它给了我以下层次结构的页面,但也深入到它包含孩子。
path=/content/geometrixx/en/toolbar
type=cq:Page
orderby=@jcr:content/cq:lastModified
我显示的结果如下:
/content/geometrixx/en/toolbar/newsletter (crxde, html, json)
/content/geometrixx/en/toolbar/sitemap (crxde, html, json)
/content/geometrixx/en/toolbar/account (crxde, html, json)
/content/geometrixx/en/toolbar/account/register (crxde, html, json)
/content/geometrixx/en/toolbar/account/register/thank_you (crxde, html, json)
在帐户页面中,我不需要结果集中的子页面。请提供适合此类查询的任何条件。
由于
答案 0 :(得分:2)
示例查询将是
type=cq:Page
path=/content/geometrixx/en/toolbar
path.flat=true
orderby=@jcr:content/cq:lastModified
orderby.sort=desc
它将转换为以下XPath查询
/jcr:root/content/geometrixx/en/toolbar/element(*, cq:Page)
order by jcr:content/@cq:lastModified descending
要了解有关各种可用属性的更多信息,请参阅PredicateEvaluator的实现类。
答案 1 :(得分:0)
如果您正在使用XPath查询,则只需删除双正斜杠即可。例如。使用QueryBuilder调试器,您的谓词给出XPath /jcr:root/content/geometrixx/en/toolbar//element(*, cq:Page)
如果您将其更改为:
/jcr:root/content/geometrixx/en/toolbar/element(*, cq:Page)
即。在“元素”之前删除第二个正斜杠,它将只搜索直接的子元素。您可以在CRX资源管理器上预览:
http://localhost:4502/crx/explorer/ui/search.jsp?Path=&Query=%2fjcr%3aroot%2fcontent%2fgeometrixx%2fen%2ftoolbar%2felement(*%2c%20cq%3aPage)