choose
を使用すると、複数の条件をテストし、場合にのみ、1試合(またはデフォルトの場合)を適用することができます。 if
でテストすることもできますが、それらは独立してテストされ、一致するそれぞれのケースに出力されます。詳細を追加する
(申し訳ありませんオフ急ぐ必要があった)
choose
を使用すると、複数のケースをテストし、唯一の条件が一致するの1、またはいくつかのデフォルトの出力を生成した場合の出力を生成することができます。例えば:
<xsl:choose>
<xsl:when test='@foo=1'><!-- do something when @foo is 1--></xsl:when>
<xsl:when test='@foo=2'><!-- do something when @foo is 2--></xsl:when>
<xsl:when test='@foo=3'><!-- do something when @foo is 3--></xsl:when>
<xsl:otherwise><!-- this is the default case, when @foo is neither 1, 2 or 3--></xsl:otherwise>
</xsl:choose>
あなたはが@foo
の値に応じて取られる「枝」のを見ることができるように。 if
で
、それは単一のテストだとそのテストの結果に出力を生成します。ここ
<xsl:if test='@foo=1'><!-- do this if @foo is 1--></xsl:if>
<xsl:if test='@foo=2'><!-- do this if @foo is 2--></xsl:if>
<xsl:if test='@foo=3'><!-- do this if @foo is 3--></xsl:if>
合併症は障害ケースある - @foo
は1,2または3のいずれでもないときに何が起こりますか?この欠落したケースは、choose
によってきれいに処理されます。すなわち、のデフォルトのアクションを持つ能力です。
XSLはまた、あなたが他のほとんどの言語で見つけること「それ以外」を持たないif
テストが失敗するあなたが代替アクションを提供することを可能にすること - とシングルwhen
とotherwise
とchoose
は、あなたがこの問題を回避することができますが、上記の私の例では、それは(あなたがこれをしないだろう理由を証明するために...)恐ろしいだろう選択の
<xsl:choose>
<xsl:when test='@foo=1'><!-- do something when @foo is 1--></xsl:when>
<xsl:otherwise> <!-- else -->
<xsl:choose>
<xsl:when test='@foo=2'><!-- do something when @foo is 2--></xsl:when>
<xsl:otherwise> <!-- else -->
<xsl:choose>
<xsl:when test='@foo=2'><!-- do something when @foo is 2--></xsl:when>
<xsl:otherwise><!-- this is the case, when @foo is neither 1, 2 or 3--></xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
出典
2012-04-17 10:23:14
Nim
詳細説明が必要です。 –