如何在XSLT TBB中获取组件的Name,version,tcm id

时间:2012-05-14 07:22:15

标签: tridion tridion-2011

我正在使用XSLT介体在SDL Tridion 2011 SP1中使用XSLT模板构建块。

我只是想知道如何在渲染时获取组件名称,版本及其TCMID。

任何人都可以帮助完成它吗?

3 个答案:

答案 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加载),您有许多选择。从最简单的开始包括:

  1. 使用XSLT使用<xsl:copy-of select="."/>之类的内容写出组件的根节点。这会将整个Component XML写入模板输出,然后在编写XSLT时可以保存以供参考。
  2. 使用CMS服务器上的协议处理程序访问组件XML,方法是在Internet Explorer中键入URI,它应显示完整的XML。
  3. 安装SDL Tridion PowerTools,在显示XML的项目视图上安装选项卡。
  4. 一旦您可以访问XML,就可以非常直观地找到任何Tridion对象的任何属性。