gpt4 book ai didi

xslt - 声明 XSL 变量时如何删除空格?

转载 作者:行者123 更新时间:2023-12-04 02:51:14 24 4
gpt4 key购买 nike

我必须创建一个带有选择的 XSL 变量。像下面这样:

<xsl:variable name="grid_position">
<xsl:choose>
<xsl:when test="count(/Element) &gt;= 1">
inside
</xsl:when>
<xsl:otherwise>
outside
</xsl:otherwise>
</xsl:choose>
</xsl:variable>

稍后在我的代码中,如果出现以下情况,我会执行 xsl:
<xsl:if test="$grid_position = 'inside'">
{...code...}
</xsl:if>

问题是,由于换行和缩进,我的变量永远不会 = 'inside'。如何从变量中删除空格?我知道我可以使用 disable-output-escaping="yes" 删除它当我在 xsl:copy-of 中使用它时,但它不适用于 xsl:variable 标记。那么如何删除那些空格和换行符呢?

最佳答案

就是这样<xsl:text>是为了:

<xsl:variable name="grid_position">
<xsl:choose>
<xsl:when test="count(/Element) &gt;= 1">
<xsl:text>inside</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>outside</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>

它允许您同时构建代码和控制空格。

实际上,您应该远离 XSL 中未包含在 <xsl:text> 中的文本节点。以避免将来出现这些类型的错误(即当代码稍后重新格式化或重构时)。

对于简单的情况,例如在您的示例中,执行 what Jim Garrison suggests也是一种选择。

顺便说一句,使用 count() 测试元素是否存在是多余的。选择它就足够了,因为空节点集的计算结果为 false .
<xsl:when test="/Element">

关于xslt - 声明 XSL 变量时如何删除空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637369/

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