我正在寻找一个 Tridion API 调用来获取包含所有结构组的 XML 以及它下面的页面以及某种层次关系。到目前为止,我在 SDL Tridion 文档中找不到这样的 API 调用。目前我们正在使用以下 API 调用来获取结构组 RAW XML 的列表:
Filter filter = new Filter();
filter.Conditions["ItemType"] = 4; // Only structure groups
filter.Conditions["Recursive"] = true;
XmlElement structureGroupList = page.ContextRepository.GetListOrganizationalItems(filter);
然后我们遍历每个结构组以获取包含相应结构组下的 Pages 节点的 XML。
OrganizationalItemItemsFilter pageItemFilter = null;
pageItemFilter = new OrganizationalItemItemsFilter(this.session);
pageItemFilter.ItemTypes = new[] { ItemType.Page };
pageItemFilter.Recursive = false;
XmlElement pageElements = structureGroup.GetListItems(pageItemFilter);
随着结构组数量的增加,Tridion API 调用的数量也在增加以获取其中的相应页面。这会在 CPU 飙升至 50% 的数据库服务器端引起性能问题。
是否有一个 API 调用可以获得具有某种关系的结构组和页面,以便我们可以通过单个 API 调用轻松地对它们进行分层排列。
提前致谢。