xslt:编写始终为false的if语句的最短方法

Har*_*iec 0 xslt if-statement xslt-1.0

<xsl:if test="(1 &gt; 2)">
</xsl:if>
Run Code Online (Sandbox Code Playgroud)

还有什么更短的吗?尝试(false)('false'),但没有运气.

Mat*_*ler 5

你快到了.这是使用布尔值的正确方法:

<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则输出元素.