gpt4 book ai didi

xslt - 从 tcm 检索 URL

转载 作者:行者123 更新时间:2023-12-01 04:43:55 24 4
gpt4 key购买 nike

我正在尝试在 render xslt 中检索多媒体组件的 URL,但它仍然失败。

我可以拿起tcm URI。有没有办法从中获取URL?

我尝试使用 tcmse:PublishBinary 函数,但失败并显示错误“命名空间‘http://www.tridion.com/ContentManager/5.1/TcmScriptAssistant’不包含任何函数。”

<table cellspacing="0px" cellpadding="0px" style="border: 0; padding: 0px; width: 100%"> 
<xsl:for-each select="twf:items/twf:item">
<tr>
<td colspan="2">
<!-- <xsl:value-of select="twf:webformscomponentlink/@xlink:href" /> -->
<!-- <xsl:value-of select="tcmse:PublishBinary(string(twf:webformscomponentlink/@xlink:href))" /> -->
<span>
<xsl:call-template name="replace-new-lines">
<xsl:with-param name="string">
<xsl:value-of select="twf:linklabel" />
</xsl:with-param>
</xsl:call-template>
<xsl:text> </xsl:text>
</span>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:choose>
<xsl:when test="twf:webformscomponentlink/@xlink:href">
<xsl:value-of select="twf:webformscomponentlink/@xlink:href" />
</xsl:when>
<xsl:otherwise>#</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of select="twf:linktext" />
</xsl:element>
</td>
</tr>
</xsl:for-each>
</table>

非常感谢

最佳答案

您提到您正在尝试解析 Render XSLT 中的多媒体组件,并且在您的标签中我看到了 WebForms,所以我假设它是 SDL Tridion WebForms 组件模板的 Render XSLT。

WebForm 是一种动态组件表示,它的组件模板使用两个 XSLT,一个在 Source 选项卡中(Expand XSLT),它在发布时执行,当发布者在 CMS 上呈现模板代码时。动态模板是另一个,它包含一个 XSLT,在发布时按原样复制到内容代理。在 WebForms Component Presentation 请求时,动态模板用于将 Expand XML 转换为 WebForm。

因此,因为动态模板在请求时执行,此时 TcmScriptAssistant 不再可用(它仅在发布时存在于内容管理器端)。解决方案是使用 tcmse:PublishBinary() 解析扩展模板中的多媒体组件。 ,在渲染模板中,您只能转换/显示扩展模板的结果,但此时您无法访问 CM 功能。

关于xslt - 从 tcm 检索 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13083844/

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