gpt4 book ai didi

xslt - 将字符串传递到需要节点的模板参数中?

转载 作者:行者123 更新时间:2023-12-03 16:23:00 25 4
gpt4 key购买 nike

所以,
我有一个XSLT模板,它希望将节点设置为参数并将其用作显示文本。但是,有时此节点在XML中为空,我想传递默认的显示文本,而不是不显示的显示文本:

作品:

<xsl:call-template name="myTemplate">
<xsl:with-param name="parm1" select="//element">
</xsl:call-template>


不起作用:

<xsl:variable name="dispText">
<xsl:choose>
<xsl:when test="string-length(//element) = 0">
<xsl:value-of select="'Default Text'" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="//element" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>

<xsl:call-template name="myTemplate">
<xsl:with-param name="parm1" select="$dispText">
</xsl:call-template>


关于如何实现此目标的任何想法?我没有运气就尝试了各种各样的事情:(

似乎所有需要做的就是用我想要的显示文本创建一个新节点,但是我不知道这是否可行?

谢谢

最佳答案

在模板中实施默认处理,因为它属于该模板。调用方应保持一致,并且不会对模板行为产生副作用(即,您不应“忘记”传递默认值)。

<xsl:template name="myTemplate">
<xsl:param name="parm1" /><!-- node set expected! -->

<!-- actual value or default -->
<xsl:variable name="value1">
<xsl:choose>
<xsl:when test="not($parm1 = '')">
<xsl:value-of select="$parm1" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$default1" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>

<!-- work with $value1 from this point on -->
</xsl:template>

关于xslt - 将字符串传递到需要节点的模板参数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275862/

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