我使用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>
答案 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
属性值。