XSLT - 将params从一个模板传递到另一个模板

时间:2011-12-11 15:15:18

标签: xslt

我是一个用于日期格式转换的开源xslt包。

链接#http://xsltsl.sourceforge.net/

这就是我打电话的方式,以便按照以下格式进行日期格式转换并获取日期 - 2011年4月4日。

<xsl:variable name="date.format">%B %d, %Y</xsl:variable>
<xsl:variable name="someDate">
    <xsl:call-template name="dt:format-date-time">
        <xsl:with-param name="xsd-date-time" select="//someDate"/>
        <xsl:with-param name="format" select="$date.format"/>
    </xsl:call-template>
</xsl:variable>

我通过调用检索结果 - <xsl:value-of select="$checkindate"/>

我想更新上面的代码,传递一个额外的参数,这是一种语言,能够获得翻译的价值而没有运气。

任何帮助!

1 个答案:

答案 0 :(得分:0)

  

我想更新上面的代码以传递一个额外的代码   参数是语言并且能够获得翻译的值   没有运气。

dt:format-date-time模板不接受任何其他参数,而不是目前的参数。

实现上述任务的方法不止一种

  1. 通过添加`xsl:param name =“lang”以及处理新参数的相应代码来修改dt:format-date-time模板的代码。

  2. 添加新模板(例如dt:format-date-time-NL)。在此模板中有xsl:param name="lang" and, if appropriate, call the existing dt:format-date-time`模板。

  3. 我建议使用第二种方法作为重用代码和实现灵活性的正面示例。 XSLT使用标准的xsl:importxsl:include指令为这种写作风格提供了干净的支持。

    另请注意,直接编辑其他人的代码并不总是可行的,可取的或符合道德的。即使这样做会导致原始代码的大量不兼容的“版本”(更准确地说是“突变”)带来所有不良后果