Javascript 如果站点有两个同名页面,如何获取页面列表?

Javascript 如果站点有两个同名页面,如何获取页面列表?,javascript,xhtml,sitecore,sitecore6,Javascript,Xhtml,Sitecore,Sitecore6,比如说 第1节/pagename.aspx 第2节/pagename.aspx 我需要快速报告仅用于具有相同名称的页面。如示例中的“pagename.html”。对您的站点进行爬网,反转找到的URL并进行排序?如果我相信这是一个Sitecore站点,您是否可以进入内容编辑器并搜索您要找的名称?例如,在标准Sitecore安装中,任何项目名为“pagename”的内容都会有一个以“pagename.aspx”结尾的URL。只需确保查看的是实际的项目名称,而不是显示名称,因为它们有时可能会完全不同,

比如说

第1节/pagename.aspx

第2节/pagename.aspx


我需要快速报告仅用于具有相同名称的页面。如示例中的“pagename.html”。

对您的站点进行爬网,反转找到的URL并进行排序?

如果我相信这是一个Sitecore站点,您是否可以进入内容编辑器并搜索您要找的名称?例如,在标准Sitecore安装中,任何项目名为“pagename”的内容都会有一个以“pagename.aspx”结尾的URL。只需确保查看的是实际的项目名称,而不是显示名称,因为它们有时可能会完全不同,具体取决于URL的设置方式。

我将编写一个快速实用程序,以编程方式遍历内容树,将名称保存到字典中。。。当你碰到一个已经在字典中的项目时,你就有一个名字冲突。

你可以考虑的是写一个过滤器(我想这就是所谓的)。


这将允许您在Sitecore中有一个很好的界面,用于查看重复的项目名称。

您的数据库有多大,以及您的LINQ到对象有多大?从理论上讲,您可以针对Database.Items编写LINQ查询,以查找从内容树的同一站点分支中派生的具有相同名称的项。如果主数据库很大,这可能会占用大量内存,但编写代码并不困难

编辑——如果可以循环浏览所有站点项目,可以执行以下操作(未经测试):


但我在多站点环境中。如何只搜索一个站点同一个Sitecore实例中的站点?在这种情况下,您应该仍然能够通过内容编辑器中的搜索功能查找所有项目,无论它们位于哪个站点
        var items = siteItem.Axes.GetDescendants();
        var dupes = from item in items
                    join item2 in items on item.Name equals item2.Name
                    where item.ID != item2.ID
                    select item;