我正在使用XSLT介体在SDL Tridion 2011 SP1中使用XSLT模板构建块。
我只是想知道如何在渲染时获取组件名称,版本及其TCMID。
任何人都可以帮助完成它吗?
答案 0 :(得分:7)
在模板生成器中清楚地观察输出后,我得到了答案
<xsl:element name="TCMID">
<xsl:value-of select="tcm:Component/@ID"/>
</xsl:element>
<xsl:element name="name">
<xsl:value-of select="tcm:Component/tcm:Data/tcm:Title"/>
</xsl:element>
<xsl:element name="Version">
<xsl:value-of select="tcm:Component/tcm:Info/tcm:VersionInfo/tcm:Version"/>
</xsl:element>
答案 1 :(得分:4)
可能不是您问题的完整答案,但包项目应作为模板的参数提供。因此,如果您需要访问组件XML中没有的值,则可以在运行XSLT TBB之前将其添加到包中。
答案 2 :(得分:1)
访问组件的非字段值会给许多开发人员带来麻烦。这并不令人惊讶,因为没有明显的方法可以从UI查看组件的完整XML。 CME中的源选项卡(SDL Tridion CM用户界面)仅显示XML中内容节点的XML,并且不显示完整的XML。
为了查看完整的XML(不通过API加载),您有许多选择。从最简单的开始包括:
<xsl:copy-of select="."/>
之类的内容写出组件的根节点。这会将整个Component XML写入模板输出,然后在编写XSLT时可以保存以供参考。一旦您可以访问XML,就可以非常直观地找到任何Tridion对象的任何属性。