首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果我们在XSLT TBB(XSLT Mediator)中有类别tcm id,如何获取关键字列表

如果我们在XSLT TBB(XSLT Mediator)中有类别tcm id,如何获取关键字列表
EN

Stack Overflow用户
提问于 2012-06-26 20:48:48
回答 1查看 559关注 0票数 3

我使用的是SDL tridion 2011 SP1。

我想使用XSLT Mediator获取给定类别下的关键字列表。

有没有人遇到过这种情况,如果有,请分享你的观点。

但是,当我实际查看Category Item XML时,它没有任何与其关键字相关的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-26 20:59:04

您将需要创建XSLT以将类别关键字插入到包中,然后在C#中将其作为参数进行访问。

您可以使用如下所示的一段c#:

代码语言:javascript
运行
复制
class GetCategoryKeywords : TemplateBase
    {
        public override void Transform(Engine engine, Package package)
        {
            Initialize(engine, package);
            String webDavPathCategory = package.GetValue("CategotryWebDavPath");
            Category cat = (Category)engine.GetObject(webDavPathCategory);
            XmlDocument keywordsXml = new XmlDocument();
            keywordsXml.LoadXml(cat.GetListKeywords().OuterXml);
            Item output = package.CreateXmlDocumentItem(ContentType.Xml, keywordsXml);
            package.PushItem("CategoryKeywords", output);
        }
    }

这将在名为CategoryKeywords的包中放置一个包含关键字的XML文档。然后,在调用XSLT中介器时,将"Include Package Paramters“值设置为true,并在XSLT的顶部添加一个参数,如下所示:

代码语言:javascript
运行
复制
<xsl:param name="CategoryKeywords"/>

然后,您可以将新参数作为变量进行循环,并对其执行所需的任何XPath查询。以下示例可能会有所帮助:

代码语言:javascript
运行
复制
<xsl:variable name="URI" select="$CategoryKeywords//tcm:ListUsedItems/tcm:Item[@Title=$VALUE]/@ID" />

<xsl:for-each select="$CategoryKeywords//tcm:ListItems/tcm:Item">
    Do something
<xsl:for-each>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11207673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档