XSL - 评估条件表达式“快捷方式”吗?

时间:2009-09-11 09:54:10

标签: xslt conditional

给出一个XSL'If'语句:

<xsl:if test="a = 'some value' and b = 'another value'">

如果a不等于'some value'b的值是否仍会被检查? (好像第一个测试是falseand的唯一结果是false。)这就像C#这样的语言 - 我想知道XSL是否也是如此。它取决于引擎/解析器吗?

2 个答案:

答案 0 :(得分:4)

是的,它被称为延迟评估或短路,xsl支持它。请参阅:http://www.w3.org/TR/xpath#booleans

  

An和表达式由   评估每个操作数和转换   它的值为布尔值,就像通过调用一样   到布尔函数。结果是   如果两个值都为true和false,则为true   除此以外。 右操作数不是   评估左操作数   评估为假。

答案 1 :(得分:0)

是的,这取决于实施情况。但是由于XSLT是无副作用的(与C#和其他语言相反,其中一个函数调用某个状态甚至一个赋值可以在表达式中),这无关紧要。