XSLT メディエータを使用して、SDL Tridion 2011 SP1 の XSLT テンプレート ビルディング ブロックに取り組んでいます。
レンダリング中にコンポーネントの名前、バージョン、およびその TCMID を取得する方法を知りたかっただけです。
誰でもそれを行う方法を助けることができますか?
XSLT メディエータを使用して、SDL Tridion 2011 SP1 の XSLT テンプレート ビルディング ブロックに取り組んでいます。
レンダリング中にコンポーネントの名前、バージョン、およびその TCMID を取得する方法を知りたかっただけです。
誰でもそれを行う方法を助けることができますか?
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>
おそらくあなたの質問に対する完全な答えではありませんが、Package Items はテンプレートへの引数として利用できるはずです。したがって、コンポーネント XML にない値にアクセスする必要がある場合は、XSLT TBB を実行する前にパッケージに追加できます。
コンポーネントの非フィールド値へのアクセスは、多くの開発者を悩ませます。コンポーネントの完全な XML を UI から表示する明確な方法がないため、これはまったく驚くべきことではありません。CME (The SDL Tridion CM User Interface) のソース タブには、XML 内のコンテンツ ノードの XML のみが表示され、完全な XML は表示されません。
完全な XML を (API 経由で読み込まずに) 表示するには、いくつかのオプションがあります。最も簡単なものから始めて、次のものが含まれます。
<xsl:copy-of select="."/>
。これにより、コンポーネント XML 全体がテンプレート出力に書き込まれ、XSLT を記述するときに参照用に保存できます。XML にアクセスできるようになると、任意の Tridion オブジェクトの任意のプロパティを見つけるのが非常に直感的になります。