Tridion API调用以获取包含具有某种层次关系的结构组和页面节点的Xml

Tridion API调用以获取包含具有某种层次关系的结构组和页面节点的Xml,tridion,tridion-2011,Tridion,Tridion 2011,我正在寻找一个tridionapi调用,以获得包含所有结构组及其下的页面的XML,并具有某种层次关系。到目前为止,我在SDL Tridion文档中找不到这样的API调用。目前,我们正在使用以下API调用获取原始XML的结构组列表: Filter filter = new Filter(); filter.Conditions["ItemType"] = 4; // Only structure groups filter.Conditions["Recursive"] = tr

我正在寻找一个tridionapi调用,以获得包含所有结构组及其下的页面的XML,并具有某种层次关系。到目前为止,我在SDL Tridion文档中找不到这样的API调用。目前,我们正在使用以下API调用获取原始XML的结构组列表:

 Filter filter = new Filter();
 filter.Conditions["ItemType"] = 4;       // Only structure groups
 filter.Conditions["Recursive"] = true;
 XmlElement structureGroupList = page.ContextRepository.GetListOrganizationalItems(filter);
然后,我们迭代每个结构组,以获得包含repective structuregroup下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调用的数量也在增加,以获取其中的各个页面。这会导致DB服务器端的性能问题,其中CPU峰值达到50%

是否有一个单独的API调用可以获取具有某种关系的结构组和页面,以便我们可以使用单个API调用轻松地按层次排列它们


提前感谢。

您可以将筛选器的
IncludeRelativeWebDavUrlColumn
属性设置为true,以获取一些其他信息

我尝试了该选项,但它似乎没有提供解决方案。通过添加上述属性,我可以在tcm:Item节点中看到URL属性,该属性包含结构组或页面的名称。它不包含webdav URL或我可以用来在层次结构中排列的任何附加信息。它是相对路径。它是相对于您正在使用列表的结构组的。若您知道要获取列表的sg的url和此属性,则可以自己构建WebDAV url