11

本当に簡単な質問ですが、正しく機能していないようです。

XSLT (ナビゲーション用) があるコンポーネントがあります。XSLT TBB を介して XSLT Mediator を使用して公開されます。

< を公開すると、<に変更され、xsltを壊します...

コンポーネント コンテンツ (プレーン テキスト フィールド)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tcm="http://www.tridion.com/ContentManager/5.0" exclude-result-prefixes="tcm xsl xs xlink tridion">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes" />
    <xsl:template match="/">
        <xsl:apply-templates select="/node/node[@type='folder')='0' and position() &lt; 3]">
           <xsl:sort select="sortnum"/>
        </xsl:apply-templates>

        <xsl:template match="node">
            <xsl:text>Lorem Ipsum</xsl:text>
        </xsl:template>
</xsl:stylesheet>

このコンポーネントを出力する XLT CT TBB:

<xsl:stylesheet version="1.0" xmlns:tcm="http://www.tridion.com/ContentManager/5.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tridion="http://www.tridion.com/ContentDelivery/5.3/TCDL" xmlns:xlink="http://www.w3.org/1999/xlink"  xmlns:helper="http://www.tridion.com/xslthelper" xmlns:systeemcode="http://www.indivirtual.nl/SysteemCode" xmlns:xhtml="http://www.w3.org/1999/xhtml" exclude-result-prefixes="tcm xsl tridion xlink systeemcode xslthelper helper xhtml">
    <xsl:output method="text" omit-xml-declaration="yes" indent="yes" encoding="utf-8" standalone="no"/>
    <xsl:variable name="content" select="/tcm:Component/tcm:Data/tcm:Content/systeemcode:SysteemCode"/>
    <xsl:template match="/">
        <xsl:value-of disable-output-escaping="yes" select="helper:HtmlDecode($content/systeemcode:code)"/>
    </xsl:template>
</xsl:stylesheet>   

CP を出力する XSLT ページ TBB:

<xsl:stylesheet version="1.0" xmlns:helper="http://www.tridion.com/xslthelper" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tcm="http://www.tridion.com/ContentManager/5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
    <xsl:template match="tcm:ComponentPresentation">
        <xsl:value-of select="helper:GetRenderedComponent(./tcm:Component/@xlink:href, ./tcm:ComponentTemplate/@xlink:href)" disable-output-escaping="yes"/>
    </xsl:template>
</xsl:stylesheet>
4

3 に答える 3

7

この問題は CT TBB で発見されました (@ChrisSummers に感謝)。

このコンポーネントを出力する XSLT CT TBB には、XSLT メディエーターの HTMLEncoding helper:HtmlDecode()メソッドへの参照がありました。これは、通常のテキストには適していますが、XSLT には適していません。私はそれを削除し、問題を解決しました:

<xsl:stylesheet version="1.0" xmlns:tcm="http://www.tridion.com/ContentManager/5.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tridion="http://www.tridion.com/ContentDelivery/5.3/TCDL" xmlns:xlink="http://www.w3.org/1999/xlink"  xmlns:helper="http://www.tridion.com/xslthelper" xmlns:systeemcode="http://www.indivirtual.nl/SysteemCode" xmlns:xhtml="http://www.w3.org/1999/xhtml" exclude-result-prefixes="tcm xsl tridion xlink systeemcode xslthelper helper xhtml">
    <xsl:output method="text" omit-xml-declaration="yes" indent="yes" encoding="utf-8" standalone="no"/>
    <xsl:variable name="content" select="/tcm:Component/tcm:Data/tcm:Content/systeemcode:SysteemCode"/>
    <xsl:template match="/">
        <xsl:value-of disable-output-escaping="yes" select="$content/systeemcode:code"/>
    </xsl:template>
</xsl:stylesheet>
于 2013-01-30T14:23:12.650 に答える
3

私が想定しているテンプレートを使用して、XSLT をどのように出力していますか? テンプレートを投稿できますか?

XSLT テンプレートを使用している場合は、おそらく「disable-output-escaping='yes'」属性を使用する必要があります。次を参照してください: http://www.w3schools.com/xsl/el_value-of.asp

于 2013-01-30T13:12:48.597 に答える
2

以前に同様の問題に直面しました。これを解決するには、現在の値を元の値に戻す別の C# TBB を使用する必要があります。

于 2013-01-30T13:11:37.130 に答える