gpt4 book ai didi

xslt - 如何使用 frontend-xslt 在模板中声明参数/变量

转载 作者:行者123 更新时间:2023-12-04 06:47:49 25 4
gpt4 key购买 nike

我这样称呼模板:

<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>

关于xslt - 如何使用 frontend-xslt 在模板中声明参数/变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3520862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com