我将一个 xml 文件传递给我的 fo 文件,如下所示:
<?xml version="1.0"?>
<activityExport>
<resourceKey>
<key>monthName</key>
<value>January</value>
</resourceKey>
所以如果我直接使用:
<xsl:value-of select="activityExport/resourceKey[key='monthName']/value"/>
我可以在我的 PDF 文件中看到“一月”。
但是,如果我在模板中这样使用它,我有:
<xsl:template name="format-month">
<xsl:param name="date"/>
<xsl:param name="month" select="format-number(substring($date,6,2), '##')"/>
<xsl:param name="format" select="'m'"/>
<xsl:param name="month-word">
<xsl:choose>
<xsl:when test="$month = 1"><xsl:value-of select="activityExport/resourceKey[key='monthName']/value"/>
</xsl:when>
然后我打电话时看不到“一月”:
<xsl:variable name="monthName">
<xsl:call-template name="format-month">
<xsl:with-param name="format" select="'M'"/>
<xsl:with-param name="month" select="@monthValue"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="concat($monthName,' ',@yearValue)"/>
我知道我的模板有效,因为如果我有一个静态字符串:
<xsl:choose>
<xsl:when test="$month = 1">Januaryyy</xsl:when>
然后我可以看到Januaryyy 很好。
所以模板有效,资源存在,但选择值在 call-template 或 xsl:choose 或 xsl:when test 内不起作用
有什么帮助吗?问候!