我正在使用Tridion核心服務(Tridion 2011 SP1)來檢索給定類別ID的關鍵字列表。Tridion核心服務 - 使用分層分類法
CoreService2010Client client = new CoreService2010Client();
XElement xmlCategoryKeywords = client.GetListXml(category.Id,
new KeywordsFilterData());
這返回什麼似乎是一個扁平的XML結構,代表我們的深度爲4級的分類。
文檔細節的做法與此工作:
var categoryKeywords = xmlCategoryKeywords.Elements().Select(element =>
element.Attribute("ID").Value).Select(id => (KeywordData)client.Read(id, null)
);
foreach (KeywordData keyword in categoryKeywords)
{
Console.WriteLine("\t Keyword ID={0}, Title={1}", keyword.Id, keyword.Title);
}
然而,這隻會列出每個關鍵字。 KeywordData對象包含屬性ParentKeywords
,因此可以在內存中構建層次結構。
是否可以從具有分層結構的核心服務中檢索XML?或者更簡單的方式來處理這些數據?
您的算法還會將相關關鍵字標記爲子關鍵字。您應該使用ChildKeywordsFilterData而不是UsingItemsFilterData。你如何處理具有多個父母的關鍵字? – 2012-03-02 10:47:15