<xsl:when test="person/id!=127 or 112" >
または上記の例では条件が機能していません。助けてください
構文が間違っています。and
ではなくである必要がありor
ます。これを試して:
<xsl:when test="person/id!=127 and person/id!=112" >
127 と 112 を同時に等しくすることはできないため、ID の値に関係なく、or
条件が設定されます。true
<xsl:when test="person/id!=127 and person/id!=112"> を試してください
私は xslt 開発者ではなく、これまで使用したことがありません。ただし、テストステートメントが欠落しているようです。xsltパーサーは112で何をすべきですか? そのための条件はありません。
使用:
not(person/id= 127 or person/id = 112)
!=
引数の 1 つまたは両方がノードセットまたは XPath 2.0 のシーケンスである場合、そのセマンティクスが直感的でない (そしてほとんど役に立たない)ため、 XPath operatorは常に避けるようにしてください)。
比較するリストが長い場合は、この種の式の方が便利で効率的です。
not(contains('|101|105|108|112|123|127|', concat('|', person/id, '|'))