我试图弄清楚如何在XSL if语句中测试满足2个条件。
<xsl:if test="NewDataSet/CallMetrics/CallsinQueue < 10
and NewDataSet/CallMetrics/CallsinQueue > 10">
<xsl:attribute name="bgcolor">#009900</xsl:attribute>
</xsl:if>
答案 0 :(得分:2)
对于包括10
在内的所有值,您的测试条件将返回false x x<10 x>10 x<10 & x>10
--- ---- ---- -----------
8 true false false
10 false false false
12 false true false
也许您打算使用or
代替and
?
编辑:如果NewDataSet/CallMetrics/CallsinQueue
是一系列节点,则一般比较规则规定如果任何节点的值满足条件,则每个比较将返回true。因此,只有当序列包含一个或多个值为&lt;的节点时,整个表达式才为真。 10和一个或多个值> gt的节点10.这似乎不是预期的。
答案 1 :(得分:0)
如果您正在尝试检查CallMetrics是否包含值小于10的CallsInQueue和值大于10的CallsInQueue,那么应该这样做:
<xsl:if test="NewDataSet/CallMetrics[CallsinQueue < 10]
and NewDataSet/CallMetrics[CallsinQueue > 10"]>
<xsl:attribute name="bgcolor">#009900</xsl:attribute>
</xsl:if>
[...]运算符检查是否存在与指定条件匹配的节点。