我在文件夹下有组件。
需要遵循什么代码/ codesyntax,循环一个包含组件的文件夹,以便我可以从不同的组件中提取值。
任何人都可以帮助我。
我使用了以下代码
**Folder compFilter= new Filter();
Folder folder=engine.GetObject(webdavurl) as Folder;
foreach(Component comp in folder.GetItems(CompFilter))**
它不起作用。请提出一些解决方案。
答案 0 :(得分:5)
逻辑如下:
如上所述,如果您告诉我们您可能获取代码示例的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
}
答案 1 :(得分: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)或按照可用的training's进行操作,不要忘记documentation(需要登录,有关如何访问的详细信息,请参阅http://docportal.sdl.com/sdltridion)