gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:10:14 25 4
gpt4 key购买 nike

我正在使用 SDL tridion 2011 SP1。

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

有人遇到过这种情况吗,如果有请分享一下你的看法。

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

最佳答案

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

您可以使用如下 C# 代码:

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 中介器时,将“Ininclude Package Paramters”值设置为 true,并将参数添加到 XSLT 的顶部,如下所示:

<xsl:param name="CategoryKeywords"/>

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

<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>

关于tridion - 如果我们在 XSLT TBB(XSLT Mediator) 中有类别 tcm id,如何获取关键字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11207673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com