正如您刚刚发现的那样,Tridion 关键字层次结构是“假的” - 关键字存储为平面列表,而不是分层列表(就像您使用文件夹一样)。有关父关键字和子关键字的信息存储在关键字本身中。
有解决方案 - 当然,例如,您可以在 C# TBB 中使用它:
Keyword keyword = new Keyword(new TcmUri("tcm:28-3368-1024"), session);
string hierarchy = keyword.Title;
bool done = false;
while(!done)
{
if (keyword.ParentKeywords.Count > 0)
{
foreach (Keyword k in keyword.ParentKeywords)
{
hierarchy = k.Title + " > " + hierarchy;
}
keyword = keyword.ParentKeywords[0];
}
else
done = true;
}
// Include Category
hierarchy = keyword.OrganizationalItem.Title + " > " + hierarchy;
编辑:更新为递归地“上升”层次结构。但是一个关键字可以有多个父级,我将由您来解决...