34

<xsl:if>XSLTのタグの「test」属性式に複数の条件を含める可能性はありますか?

<xsl:if test="$var='ab' | $var='bc' | $var='ca' ">
</xsl:if>

「式はノードセットに対して評価する必要があります」というエラーが発生します。

<xsl:if>タグでそのような複数の条件をコーディングする可能性はありますか?

次のタグについて、この複数の条件の検証をどのように達成できるかを誰かが説明できますか?

<xsl:if>テスト属性式で

<xsl:for-each>select属性式で

<xsl:template>一致属性式で

4

2 に答える 2

49
<xsl:if test="$var='ab' | $var='bc' | $var='ca' ">

これは間違っています-ブール値に対してXPathユニオン演算子を使用しています。|

解決策:XPathor演算子を使用します。

<xsl:if test="$var='ab' or $var='bc' or $var='ca' ">

上記のXPath式(test属性の値)は最適化できるため、比較は1つだけで、or必要はありません。

<xsl:if test="contains('|ab|bc|ca|', concat('|', $var, '|'))">
于 2012-05-10T11:39:23.483 に答える
6

XSLT 2.0以降では、一連の文字列に対してテストできます。

<xsl:if test="$var=('ab','bc','ca')">...</xsl:if>
于 2016-12-07T23:17:21.363 に答える