【问题标题】:Loop through Folder Level [closed]遍历文件夹级别[关闭]
【发布时间】:2012-07-12 10:23:00
【问题描述】:

我在文件夹下有组件。

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

谁能帮帮我。

我使用了以下代码

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

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

【问题讨论】:

  • 请指定 Tridion 的版本以及代码是在脚本还是模板中,如果在模板中,则指定哪种模板语言。
  • 编写 C# 代码。 2011 版
  • 代码示例的第一行包含一个问题。 compFilter 对象不是文件夹类型 这里的 C# 示例tridiondeveloper.com/… 显示了如何循环遍历结构和页面,只需转换为文件夹和组件
  • “它不工作”非常模糊,您至少应该告诉我们结果是什么,您得到的是空集合还是收到错误消息等。
  • @user1518281,在询问 SO 之前,预计会在网络上进行一些初步研究。网上和官方 Tridion 文档中有很多关于此的示例。

标签: tridion tridion-2011


【解决方案1】:

逻辑如下:

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

如前所述,如果您告诉我们您可能获得代码示例的 API。上述逻辑适用于任何 API。

[更新]

请不要使用 Filter,此类在 Tridion 2011 中已弃用,取而代之的是 StronglyTypedFilter“family”。

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
}

【讨论】:

  • 感谢 Nuno 的精彩解释。它帮助了我。
  • 不客气。做一个好公民,接受答案——这将帮助其他有同样问题的人。
【解决方案2】:

如何使用 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)或关注可用的training's,不要忘记documentation(需要登录,有关如何访问的详细信息,请参阅http://docportal.sdl.com/sdltridion

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    相关资源
    最近更新 更多