10

Tridion 2009から2011への最近のアップグレード中に、XSLTコンポーネントテンプレートの一部が機能しなくなりました。

コンポーネントテンプレートは、現在のパブリケーションXMLのcategoryXSDセクションから子キーワードを読み取ります。次に、webdavを使用して各キーワードをロードしました。

出版物XMLのこのセクションは2011年に削除されたようです。

XSLTテンプレートを使用するときにCategoryTcmIdから子キーワードを取得する別の方法を知っている人はいますか?

4

3 に答える 3

3

古いスタイルのXSLTコンポーネントテンプレートを使用するときにアイテムのリストが必要な場合は、通常、関連するアイテムを含むXMLドキュメントを返す「ヘルパー」サービスまたはASPXページを作成します。次に、XSLTのDocument()関数を使用してそのヘルパーを呼び出すことができます。通常、これはCMSサービスに保存されているASPXの形式を取ります。http://tridion.local.url/web/helpers/GetListXml.aspx?uri=SomeOrgItemURI

GetListXml.aspxのTOMAPIを使用して、GetListItemを使用してアイテムをクエリし、出力への応答を書き込むことができます。

次に、XSLTで。のようなものを使用できます<xsl:variable name="KEYWORDS" select="document('http://tridion.local.url/web/helpers/GetListXml.aspx?uri=$CAT_URI')"/>。次に、新しい変数のキーワードノードを反復処理できます。

ただし、SDL Tridion Worldで利用可能なモジュラーテンプレートとXSLTメディエーターを使用する場合は、多くのヘルパーが組み込まれているため、その必要はありません。新しいテンプレート手法を検討することを強くお勧めします。

于 2012-04-18T16:43:57.253 に答える
3

私はPublicationXMLを見ていますが、あなたは運が悪いと思います。への言及があり、<tcm:CategoriesXSD>そこからカテゴリTcmUriを取得できますが、カテゴリXMLに移動すると、その子キーワードについての言及はありません。

したがって、Chrisが提案するようにXSLT Mediatorを使用するか、このXSLTをC#テンプレートとして書き直してください。

于 2012-04-18T15:34:50.983 に答える
1

モジュラーテンプレートで使用するためにXSLTメディエーターを使用しているのか、それとも単純な古いXSLTコンポーネントテンプレートを使用しているのかについては言及していません。明確にできますか?

XSLT Mediatorを使用し、XSLTが実行される前に、カテゴリからパッケージにキーワードを追加するC#で記述されたヘルパーテンプレートを追加します。このリストは、パラメータを使用してXMLドキュメントとしてアクセスできます。それでうまくいく場合は、お知らせください。コードサンプルを掘り下げてみます。

于 2012-04-18T15:09:05.800 に答える