或条件不适用于xslt if

时间:2012-10-30 12:45:00

标签: xslt

<xsl:when test="person/id!=127 or 112" >

或条件在上面的示例中不起作用。请帮忙

4 个答案:

答案 0 :(得分:2)

您的语法错误,应该是and,而不是or。试试这个:

<xsl:when test="person/id!=127 and person/id!=112" >

如果你在那里放or,无论ID的值是多少,你的条件都将是true,因为没有数字可以同时等于127和112。

答案 1 :(得分:1)

尝试      &lt; xsl:when test =“person / id!= 127 and person / id!= 112”&gt;

答案 2 :(得分:0)

使用

 not(person/id= 127 or person/id = 112)

尝试始终避免使用!= XPath运算符,因为当其一个或两个参数是节点集9或XPath 2.0中的序列时,它的语义不直观(且很少有用)

当您有一个长列表进行比较时,这种表达方式可能更方便有效

not(contains('|101|105|108|112|123|127|', concat('|', person/id, '|'))

答案 3 :(得分:0)

我不是xslt开发人员,以前从未使用过它。但是,似乎缺少测试语句。 xslt解析器应该用112做什么?没有提供条件。