4

XSLT メディエータを使用して、SDL Tridion 2011 SP1 の XSLT テンプレート ビルディング ブロックに取り組んでいます。

レンダリング中にコンポーネントの名前、バージョン、およびその TCMID を取得する方法を知りたかっただけです。

誰でもそれを行う方法を助けることができますか?

4

3 に答える 3

7

Template Builder で出力を明確に観察した後、次のような回答を得ました。

<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

コンポーネントの非フィールド値へのアクセスは、多くの開発者を悩ませます。コンポーネントの完全な XML を UI から表示する明確な方法がないため、これはまったく驚くべきことではありません。CME (The SDL Tridion CM User Interface) のソース タブには、XML 内のコンテンツ ノードの XML のみが表示され、完全な XML は表示されません。

完全な XML を (API 経由で読み込まずに) 表示するには、いくつかのオプションがあります。最も簡単なものから始めて、次のものが含まれます。

  1. のようなものを使用して、XSLT を使用してコンポーネントのルート ノードを書き出します<xsl:copy-of select="."/>。これにより、コンポーネント XML 全体がテンプレート出力に書き込まれ、XSLT を記述するときに参照用に保存できます。
  2. Internet Explorer に URI を入力して、CMS サーバーのプロトコル ハンドラーを使用してコンポーネント XML にアクセスすると、完全な XML が表示されます。
  3. XML を表示するアイテム ビューにタブをインストールするSDL Tridion PowerToolsをインストールします。

XML にアクセスできるようになると、任意の Tridion オブジェクトの任意のプロパティを見つけるのが非常に直感的になります。

于 2012-05-14T16:21:48.310 に答える