你可以把两个条件在xslttesting属性?
这是正确的当4 <5和1 <2?
<xsl:when test="4 < 5 AND 1 < 2" > <!-- do something --> </xsl:when>
不完全是,AND必须是小写的。
<xsl:when test="4 < 5 and 1 < 2"> <!-- do something --> </xsl:when>
它必须包装在一个<xsl:choose>中,因为它是一个when。 小写的“和”。
<xsl:choose> <xsl:when test="4 < 5 and 1 < 2" > <!-- do something --> </xsl:when> <xsl:otherwise> <!-- do something else --> </xsl:otherwise> </xsl:choose>
来自XML.com :
像xsl:if指令一样,xsl:when元素可以在开始和结束标签之间有更精细的内容,例如文字结果元素,xsl:元素元素,甚至是xsl:if和xsl:choose elements-要添加到结果树。 他们的testingexpression式也可以使用xsl:if元素的testing属性可以使用的所有技巧和运算符,例如和和/或函数调用来构build更复杂的布尔expression式。
也许这对于xslt专业人员来说是一件不容易的事情,但对于初学者/中级人员来说,这让我感到困惑。 我想做的是完全一样的事情,但我不得不从一个XML而不是一个普通的数字来testing一个响应时间值。 在这个线程之后,我尝试了这个:
<xsl:when test="responsetime/@value >= 5000 and responsetime/@value <= 8999">
这产生了一个错误。 这工作:
<xsl:when test="number(responsetime/@value) >= 5000 and number(responsetime/@value) <= 8999">
不过,真的不明白为什么它没有数字(),但是。 难道没有数字()的价值被视为一个string,你不能比较数字与string?
无论如何,希望这可以节省很多人的search…