尽管具有指定字段值的项目存在,但为什么此sitecore查询未返回任何项目?

时间:2015-11-18 16:24:51

标签: sitecore sitecore8

我正在尝试使用以下查询查询一个项目的后代:

enter image description here

尽管存在具有指定字段值的项目,但是没有获取任何项目?

查询分析器中的此查询由于某种原因起作用:

select * from /sitecore/content/itema/News/descendant::*[@NewsId='235271']

有任何帮助我纠正我的代码以获取我正在搜索的项目吗?

string sitecoreQuery = "descendant::*[@NewsId='" + item.Id.ToString() + "']";
Item[] newsItems = parent.Axes.SelectItems(sitecoreQuery);

2 个答案:

答案 0 :(得分:0)

根据您的评论更新:

查询看起来没问题,但您也可以尝试使用后代的快捷方式://*。我刚刚在本地进行了测试,它返回了我预期的项目。

string sitecoreQuery = "//*[@NewsId='" + item.Id.ToString() + "']";
Item[] newsItems = parent.Axes.SelectItems(sitecoreQuery);

同时仔细检查item.Id.ToString()是否正在返回您期望的ID。

希望有所帮助

答案 1 :(得分:0)

您可以尝试以下操作:

Item[] newsItems = Sitecore.Context.Database.SelectItems(string.Format("/sitecore/content/itema/News//*[@NewsId='{0}']", NewsId));

那可以为你提供过滤后的物品