获取具有给定名称的内容项的所有子孙

时间:2013-11-13 19:15:37

标签: c# asp.net sitecore

我有以下Sitecore查询:

  1. / Sitecore的/内容/首页/俱乐部// 17
  2. / Sitecore的/内容/主页/俱乐部// 20
  3. 特别值得注意的是,我使用Sitecore查询语言(//)的后代轴功能,其中/ sitecore / content / Home / Clubs是我的上下文。

    我的内容结构如此:

    1. / Sitecore的/内容/首页/俱乐部/芝加哥/ 17
    2. / Sitecore的/内容/首页/俱乐部/新纽约/市区/ 20
    3. 当我在XPath Builder中运行查询1和2时,我得到内容项1和2;分别。这就是我的期望。但是,当我通过Sitecore的API运行相同的查询时,我会收到内容未找到错误。

      以下查询适用于Sitecore的API,请注意:

       * /sitecore/content/home/clubs/*/17th
       * /sitecore/content/home/clubs/*/*/20th
      

      我想要完成的是一个查询,我可以获得具有特定名称的内容项的子孙和子孙;像这样的查询:

      /sitecore/content/Home/Clubs//{contentItemName}
      

      我知道我可以试试

      /sitecore/content/Home/Clubs/*/{contentItemName}
      

      并回退到

      /sitecore/content/Home/Clubs/*/*/{contentItemName}
      

      如果这不起作用,但这似乎是一种黑客攻击。

      我是否可以获得我在XPath构建器中验证的查询以使用Sitecore API?

1 个答案:

答案 0 :(得分:1)

我认为您需要在XPath构建器中使用以下内容:

/sitecore/content/Home/Clubs//*[@@name='20th']

或在API中:

/sitecore/content/Home/Clubs//*[@@name='{contentItemName}']