XSLT - 如何在选择中设置正确的语言

时间:2018-02-01 15:02:40

标签: xslt metadata dita

我使用XSLT Dita OT生成PDF文件。 对于发布过程,可以生成EN,FR,DE,IT中的转换文件。现在我使用下面的代码来管理我的输出。

我在这种情况下语言是元数据,这就是为什么我使用" @属性"

但是在发布我的代码之后它还没有用。有人可以帮我这个。

<xsl:choose>
      <xsl:when test="@xml:lang = 'EN'">
                <fo:block-container xsl:use-attribute-sets="languagecontainer" top="25mm">
                    <fo:block xsl:use-attribute-sets="languageblock">ENGLISH</fo:block>
                </fo:block-container>
            </xsl:when>             
                <xsl:when test="@xml:lang = 'FR'">
                <fo:block-container xsl:use-attribute-sets="languagecontainer" top="55mm">
                    <fo:block xsl:use-attribute-sets="languageblock">FRANÇAIS</fo:block>
                </fo:block-container>
            </xsl:when>
                <xsl:when test="@xml:lang = 'DE'">
                    <fo:block-container xsl:use-attribute-sets="languagecontainer" top="85mm">
                        <fo:block xsl:use-attribute-sets="languageblock">DEUTSCH</fo:block>
                    </fo:block-container>
                </xsl:when>    
                <xsl:when test="@xml:lang = 'IT'">
                <fo:block-container xsl:use-attribute-sets="languagecontainer" top="115mm">
                     <fo:block xsl:use-attribute-sets="languageblock">ITALIANO</fo:block>
                </fo:block-container>
            </xsl:when>
                <xsl:when test="@xml:lang = 'ES'">
                <fo:block-container xsl:use-attribute-sets="languagecontainer" top="145mm">
                    <fo:block xsl:use-attribute-sets="languageblock">ESPAÑOL</fo:block>
                </fo:block-container>
            </xsl:when>
            <xsl:otherwise>
                <fo:block>
                    <xsl:text>no result</xsl:text>
                </fo:block>
            </xsl:otherwise>

1 个答案:

答案 0 :(得分:0)

<xsl:message>之前插入调试<xsl:choose>指令以分析您的问题会很有用。

<xsl:message select="'context=',."/>
<xsl:message select="'@xml:lang=',@xml:lang"/>

如果上下文不是元素,引用@xml:lang没有意义。或者如果@xml:lang不是预期的({&#39; FR&#39;,&#39; DE&#39;,&#39; IT&#39;&#39; ES&#39;),您应该更正模板以匹配实际的@xml:lang属性值。