如何在XSLT中检查Parameter的值为null

时间:2018-10-12 13:55:02

标签: xml xslt

我想进行检查并在XML上执行一些转换。以下是我使用过的代码段。

<xsl:param name="code" />

<xsl:if test="$code != ''">
<xsl:template match="partner/configuration/flags">
    <value><xsl:value-of select="$code"/></value>
</xsl:template>
  </xsl:if>

尝试使用'!='进行条件检查无法获得预期的结果。有人可以帮忙解决这个错误吗?

1 个答案:

答案 0 :(得分:1)

首先,您的代码没有意义,因为您无法将xsl:template放在xsl:if内。

第二,在XSLT / XPath数据模型中没有“ null”之类的东西。您需要更清楚地说明您要测试的内容。返回空节点集的表达式?没有子节点的元素节点?一个字符串值为零长度字符串的节点?在这种情况下,精度至关重要。

第三,如果要使用“!=”,则需要准确理解其含义。如果A是一个节点集(或在2.0中是一个序列),则如果A中存在一个节点的值不是零长度字符串,则A != ""返回true。如果A是一个空集,则表达式返回false。在大多数情况下,您可能希望使用not(A="")而不是A!=""-它们并不意味着同一件事。