4

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

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

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

4

3 回答 3

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>
于 2012-05-14T09:26:36.250 回答
4

可能不是您问题的完整答案,但 Package Items 应该可用作模板的参数。因此,如果您需要访问不在组件 XML 中的值,您可以在运行 XSLT TBB 之前将其添加到包中。

于 2012-05-14T08:23:14.333 回答
1

访问组件的非字段值困扰着许多开发人员。这并不奇怪,因为没有明显的方法可以从 UI 中查看组件的完整 XML。CME(SDL Tridion CM 用户界面)中的源选项卡仅显示 XML 中内容节点的 XML,不显示完整的 XML。

为了查看完整的 XML(无需通过 API 加载),您有多种选择。从最简单的开始,包括:

  1. 使用 XSLT 写出组件的根节点,使用类似<xsl:copy-of select="."/>. 这会将整个组件 XML 写入模板输出,然后您可以在编写 XSLT 时将其保存以供参考。
  2. 使用 CMS 服务器上的协议处理程序访问组件 XML,方法是在 Internet Explorer 中键入 URI,它应该显示完整的 XML。
  3. 安装SDL Tridion PowerTools,它会在显示 XML 的项目视图上安装一个选项卡。

一旦可以访问 XML,查找任何 Tridion 对象的任何属性就变得非常直观。

于 2012-05-14T16:21:48.310 回答