-9

我在文件夹下有组件。

需要遵循什么代码/代码语法,以循环浏览具有组件的文件夹,以便我可以从不同组件中提取值。

谁能帮帮我。

我使用了以下代码

**Folder compFilter= new Filter(); 
Folder folder=engine.GetObject(webdavurl) as Folder; 
foreach(Component comp in folder.GetItems(CompFilter))**

它不起作用。请提出一些解决方案。

4

2 回答 2

5

逻辑如下:

  1. 创建一个过滤器,指定您感兴趣的项目类型是组件
  2. 根据您需要的信息,从文件夹中获取项目或获取列表项目。如果您只需要标题和 ID,Get List 会更快(返回 XML)。如果您需要项目的其他属性,请使用返回对象的 Get Items。

如前所述,如果您让我们知道您可能会获得哪个 API 代码示例。上述逻辑适用于任何 API。

[更新]

请不要使用Filter,这个类在 Tridion 2011 中被弃用,取而代之的是StronglyTypedFilter“家庭”。

Session session = engine.GetSession();
string folderUrl = "/my/long/webdav";
OrganizationalItemItemsFilter filter = new OrganizationalItemItemsFilter(session)
                                            {ItemTypes = new[] {ItemType.Component}};

Folder folder = (Folder)session.GetObject(folderUrl);

foreach (Component component in folder.GetItems(filter))
{
    // Do something with the component
}
于 2012-07-12T16:04:05.327 回答
4

如何使用 2011 TOM.NET API 循环文件夹并访问组件的简单示例如下:

OrganizationalItemItemsFilter filter = new OrganizationalItemItemsFilter(folder.Session)
{
    ItemTypes = new[] {ItemType.Component},
    Recursive = false
};
foreach (Component comp in folder.GetItems(filter))
{
    // get fields collection of component
    ItemFields fields = new ItemFields(comp.Content, comp.Schema);
}

但是,如果您还没有走到这一步,我强烈建议您查看SDL Tridion World上的所有构建块(它们包含大量示例代码,可帮助您了解如何使用不同的 API)或遵循可用的培训并且不要忘记文档(需要登录,有关如何访问的详细信息,请参见http://docportal.sdl.com/sdltridion )

于 2012-07-12T16:09:46.843 回答