XSL ファイルに <xsl:choose> エレメントを追加する

<xsl: choose> エレメントを使用すると、互いに代替可能な一連のオプションの中からいずれかを選択できます。 ユーザーは多くの選択項目から選択して使用可能であり、必要ならばデフォルトの選択も許容されます。

このエレメントの構成は、次のとおりです。
<xsl: choose>
	<xsl: when test ="Boolean expression">  
	<xsl: when test ="Boolean expression"> 
	<xsl:otherwise>
</xsl: choose>

各 <xsl: when> エレメントはテスト条件を持っています。 テスト条件は、ブール値に変換される XPath 式であるブール式です。テスト条件が true である最初の <xsl: when> エレメントのコンテンツは、結果ツリーへの出力です。

その上、  <xsl: choose> エレメントはオプションの <xsl:otherwise> エレメントを持つ場合があります。 そのコンテンツは、<xsl:when> エレメントのテスト条件に true のものがない場合にのみ出力されます。 <xsl:otherwise> エレメントが存在せず、どの <xsl: when> 子エレメントのテスト条件も true でない場合、 <xsl: choose> エレメントは出力を生成しません。

以下に、  <xsl: choose> エレメントの例を示します。

<xsl: choose>
  <xsl: when test = "number [ . &gt; 2000]">A big number</xsl:when> 
 <xsl:otherwise>A small number</xsl:otherwise> 
</xsl: choose>

ターゲット XML ファイルの number エレメントに 2,000 より大きい数値が含まれる場合は、 ストリング「A big number」が結果ツリーに挿入されます。それ以外の場合は、「A small number」が挿入されます。

次の説明は Resource パースペクティブを対象にしていますが、他のさまざまなパースペクティブでも使用できます。

<xsl:choose> エレメントを作成するには、以下のステップに従ってください。

  1. <xsl: choose> エレメントに追加したい XSL ファイルを開く。
  2. XSL エディターで、<xsl: choose> エレメントを追加したいロケーションにカーソルを置く。
  3. 断片 (Snippets)」タブをクリックし、XSL ドロワーを開き、それから xsl:choose エレメントを使用した条件論理 をダブルクリックします。 「XSL 条件付き処理 (XSL Conditional Processing)」ウィザードが開きます。
  4. 追加時期 (Add When)」をクリックして、<xsl: when> 条件を追加する。 これを選択する。
  5. テスト (Test)」フィールドに XPath 式を入力する。 XPath 式は、手動で入力するか、「XPath 式 (XPath expression)」ウィザードを使用して作成します (ウィザードを立ち上げるには、「XPath」をクリックします)。
  6. コンテンツ (Content)」フィールドに、 テスト条件が true になったとき結果ツリーに追加したいコンテンツを入力する。
  7. 追加したいその他の <xsl: when> 条件について、ステップ 4 から 6 を繰り返す。
  8. (オプション) 「その他の追加 (Add Otherwise)」をクリックして、<xsl:otherwise> 条件を追加する。 これを選択する。 テスト条件は指定できません。
  9. コンテンツ (Content)」フィールドに、 <xsl: when> エレメントが true でない場合に結果ツリーに追加したいコンテンツを入力する。
  10. ぼかし表示された領域は、<xsl: choose> ステートメントの内容を示しています。 ここで直接編集することはできません。
  11. 条件を編集するには、条件を選択し、必要に応じてそのフィールドを編集する。
  12. 条件を除去するには、その条件を選択して「除去 (Remove)」をクリックする。
  13. <xsl:choose> エレメントの処理を終了したら、「完了」をクリックする。
<xsl:choose> エレメントが XSL ファイルに挿入されます。
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.