如何使用fronend xslt在模板中声明参数/变量
我将这样的模板称为:如何使用fronend xslt在模板中声明参数/变量,xslt,Xslt,我将这样的模板称为: <xsl:call-template name="trip_form"> <xsl:with-param name="header" select="'Spara din resa'" /> <xsl:with-param name="size" select="'savetrip'" /> </xsl:call-template> <xsl:template name="trip_form">
<xsl:call-template name="trip_form">
<xsl:with-param name="header" select="'Spara din resa'" />
<xsl:with-param name="size" select="'savetrip'" />
</xsl:call-template>
<xsl:template name="trip_form">
<xsl:param name="type" />
<xsl:param name="size" />
<xsl:param name="header" />
<xsl:if test="type = ''">
<xsl:if test="/root/meta/url_params/has_car = 1">
<xsl:with-param name="'type'" select="'driver'" />
</xsl:if>
<xsl:if test="/root/meta/url_params/has_car = 0">
<xsl:variable name="'type'" select="'passenger'" />
</xsl:if>
</xsl:if>
模板如下所示:
<xsl:call-template name="trip_form">
<xsl:with-param name="header" select="'Spara din resa'" />
<xsl:with-param name="size" select="'savetrip'" />
</xsl:call-template>
<xsl:template name="trip_form">
<xsl:param name="type" />
<xsl:param name="size" />
<xsl:param name="header" />
<xsl:if test="type = ''">
<xsl:if test="/root/meta/url_params/has_car = 1">
<xsl:with-param name="'type'" select="'driver'" />
</xsl:if>
<xsl:if test="/root/meta/url_params/has_car = 0">
<xsl:variable name="'type'" select="'passenger'" />
</xsl:if>
</xsl:if>
等等
当我在调用模板时指定$type变量时,我想使用该值,但如果我不想使用该值,我想检查Url_params/has_car节点并相应地设置该变量,我该怎么做?初始设置参数或变量后,您不能更新其值。但是,您可以做的是创建一个新变量,并根据是否设置了原始参数$type来设置该变量 试试这样的。这将创建一个新变量$newtype,然后可以在模板中使用它。如果设置了$type,那么$newtype将等于$type,否则它将查看Url_params/has_car元素
<xsl:template name="trip_form">
<xsl:param name="type"/>
<xsl:param name="size"/>
<xsl:param name="header"/>
<xsl:variable name="newtype">
<xsl:choose>
<!-- Check if type is defined -->
<xsl:when test="$type = ''">
<!-- Determine if a driver or passenger -->
<xsl:choose>
<xsl:when test="/root/meta/url_params/has_car = 1">
<xsl:value-of select="'driver'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'passenger'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<!-- Use value of parameter -->
<xsl:value-of select="$type"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Use the new variable $newtype here -->
<xsl:value-of select="$newtype"/>
</xsl:template>
如果要为参数定义默认值,只需将其添加到参数声明中即可。例如:
<xsl:template name="trip_form">
<xsl:param name="type">
<xsl:choose>
<xsl:when test="/root/meta/url_params/has_car = 1">driver</xsl:when>
<xsl:otherwise>passenger</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="size"/>
<xsl:param name="header"/>
</xsl:template>
司机
乘客
或:
这是壁炉,我也喜欢when/否则,我一直在寻找这样的东西!