Sitecore:如何在不同部分访问相同的字段名

Sitecore:如何在不同部分访问相同的字段名,sitecore,Sitecore,我在sitecore中有数据模板dt1,它在节数据中有字段头。 我还有数据模板dt2,它在节门户中有字段头 最后,我有数据模板dt3,它使用dt1和dt2作为基本模板 如何在xslt中找到门户/标题的内容 在我的代码中,当我编写时,我会得到数据/头的内容,因为这个节点是第一个出现的。 我知道如何在.net中实现这一点,但我需要使用xslt /callprat你不能 坦率地说,我也不知道有什么支持的方法可以从.NET中实现这一点 这是直接从第2.1.1节开始的 2.1.1数据模板字段 数据模板字段

我在sitecore中有数据模板dt1,它在节数据中有字段头。 我还有数据模板dt2,它在节门户中有字段头 最后,我有数据模板dt3,它使用dt1和dt2作为基本模板

如何在xslt中找到门户/标题的内容

在我的代码中,当我编写时,我会得到数据/头的内容,因为这个节点是第一个出现的。 我知道如何在.net中实现这一点,但我需要使用xslt

/callprat

你不能

坦率地说,我也不知道有什么支持的方法可以从.NET中实现这一点

这是直接从第2.1.1节开始的

2.1.1数据模板字段

数据模板字段定义用户 接口控件和其他属性 这会影响场的行为 在内容编辑器和页面编辑器中。 有关字段的详细信息,请参见 第四章,模板字段

注意:定义字段名时,请确保 他们是独一无二的,即使在 现场部分。XSLT和.NET 代码仅使用字段名,不使用 参考章节,摘录 来自字段的内容


您可以通过字段ID引用字段:

C:

字符串值=项[{00000000-0000-0000-000000000000}]

Field=item.Fields[{00000000-0000-0000-000000000000}]

我还没有尝试过这一点,但我认为它在XSLT中也会起作用:


我在.Net的一个项目中找到了解决这个问题的方法。客户机设置的其中一个模板的bucket具有不同的字段部分,但bucket之间的字段相同。我使用LINQ按节名对字段进行分组,然后处理每个字段分组

var sections = currentItem.Fields.GroupBy(field => field.Section);
foreach (var section in sections)
{
    if (section.Key.StartsWith("Bucket"))
    {
        buckets.Add(new Bucket(section)); //I made a bucket item, 
                                          //and passed each IGrouping<Field> to it
    }
}

当询问如何组合特定的XPath表达式以选择XML文档中的特定节点时,必须提供XML文档本身。请务必提供要从中选择节点的XML文档。另外,请准确描述您需要选择哪些节点。谢谢,但这是问题之一,我不知道xml是什么样子。我注意到我问题的代码部分没有显示,我已经编辑了它,正如您现在看到的,我正在使用sitecore自己的xslt版本。如果有人知道查看sitecore xml的方法,这可能也会有所帮助。您可以使用API来完成。您只需在“部分信息”下查找字段ID即可。然后,您可以使用它来获取字段值。
item.Fields.Where(field => field.Section.ToUpper() == "META DATA" && 
                           field.DisplayName.ToUpper() == "TITLE").First().Value;