你可以把两个条件在xslttesting属性?

这是正确的当4 <5和1 <2?

<xsl:when test="4 &lt; 5 AND 1 &lt; 2" > <!-- do something --> </xsl:when> 

不完全是,AND必须是小写的。

 <xsl:when test="4 &lt; 5 and 1 &lt; 2"> <!-- do something --> </xsl:when> 

它必须包装在一个<xsl:choose>中,因为它是一个when。 小写的“和”。

 <xsl:choose> <xsl:when test="4 &lt; 5 and 1 &lt; 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 &gt;= 5000 and responsetime/@value &lt;= 8999"> 

这产生了一个错误。 这工作:

 <xsl:when test="number(responsetime/@value) &gt;= 5000 and number(responsetime/@value) &lt;= 8999"> 

不过,真的不明白为什么它没有数字(),但是。 难道没有数字()的价值被视为一个string,你不能比较数字与string?

无论如何,希望这可以节省很多人的search…