首页 > 解决方案 > 如何评估 xsl:if 的数字?

问题描述

https://xsltfiddle.liberty-development.net/pPJ8LV9

<person age="18"/>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="3.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xsl:output method="text" omit-xml-declaration="yes" indent="no"/>


    <xsl:template match="person">
      <xsl:variable name="given" select="12" />

      <xs:if test="(@age &lt; $given)">
          <xsl:value-of select="(@age &lt; $given)"/>
          <xsl:text>&#10;</xsl:text>
          <xsl:text>SHOULD NOT PRING</xsl:text>
      </xs:if>

  </xsl:template>
</xsl:stylesheet>

结果:

false
SHOULD NOT PRING

当条件显然评估为 时,为什么它会打印false

标签: xmlxslt

解决方案


你需要改变:

xs:if

至:

xsl:if

您现在拥有的不是条件,而是文字结果元素。如果将输出方法更改为 ,您可以看到这一点xml


PS不知道为什么你需要括号。


推荐阅读