Har*_*iec 0 xslt if-statement xslt-1.0
<xsl:if test="(1 > 2)">
</xsl:if>
Run Code Online (Sandbox Code Playgroud)
还有什么更短的吗?尝试(false)和('false'),但没有运气.
你快到了.这是使用布尔值的正确方法:
<xsl:when test="false()">
Run Code Online (Sandbox Code Playgroud)
它比你的解决方案略短,但我不会说简洁在这里很重要.相反,使用布尔值进行真值测试比利用数字比较的"副作用" 更清晰.
有关如何在XSLT中创建布尔值的更多信息,请参阅此答案.
为了说明这一点,假设如下
XML输入
<?xml version="1.0" encoding="utf-8"?>
<root/>
Run Code Online (Sandbox Code Playgroud)
样式表
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/root">
<xsl:choose>
<xsl:when test="false()">
<xsl:copy/>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
如果更改false()为true(),root则输出元素.