<xsl:when test="person/id!=127 or 112" >
或条件在上述示例中不起作用。请帮忙
您的语法错误,它应该是and
,而不是or
。试试这个:
<xsl:when test="person/id!=127 and person/id!=112" >
如果你放在那里,无论 ID 的值是什么or
,你的条件都将是,因为没有数字可以同时等于 127 和 112。true
试试 <xsl:when test="person/id!=127 and person/id!=112">
使用:
not(person/id= 127 or person/id = 112)
尽量避免使用!=
XPath 运算符,因为当它的一个或两个参数是节点集 9 或 XPath 2.0 中的序列时,它的语义不直观(并且很少有用)。
当你有很长的列表要比较时,这种表达方式可能更方便高效:
not(contains('|101|105|108|112|123|127|', concat('|', person/id, '|'))
我不是 xslt 开发人员,以前从未使用过它。但是,似乎缺少测试语句。xslt 解析器应该如何处理 112?没有为它提供任何条件。