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

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

4

4 回答 4

2

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

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

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

于 2012-10-30T12:46:46.797 回答
1

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

于 2012-10-30T12:47:54.933 回答
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, '|'))
于 2012-10-30T12:50:03.587 回答
0

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

于 2012-10-30T12:51:38.170 回答