for
構文
for name (expression) { /* code */ }
for name (min ... max) { /* code */ }
説明
コンテキストを変更せずに整数セットまたはノードセットを繰り返し、整数またはノードセットの各メンバーを指定された変数の値として使用してステートメントのブロックを実行します。
引数が XPath 式の場合は、シーケンス内の式によって選択されたノード セットの各メンバーに変数が割り当てられます。引数が整数セットの場合、反復演算子(...)は左右のオペランドの間の各整数の値を持つノードのシーケンスを生成します。左項が右項より大きい場合、数値は減少順に生成されます。この変数は、各整数の値を順序付けます。反復ごとに、内容が評価され、コードブロックに含まれる for
命令に従って処理されます。
属性
expression |
処理するノードを選択する XPath 式。 |
max |
整数シーケンスの終了値を定義する整数または変数。終了値が開始値より小さい場合、数値は減少順に生成されます。 |
min |
整数シーケンスの開始値を定義する整数または変数。開始値が終了値よりも大きい場合、数値は減少順に生成されます。 |
name |
整数またはノード・セットの |
SLAX の例
次の例では、ループはfor
ノードをinterfaces
繰り返します。XPath 式は、ノードのinterface
子であり、「ge-」指定子で始まる値を持つ各name
ノードを選択します。選択は、ループコードブロックの$name
反復内で使用される変数にfor
割り当てられます。ループはfor
、各選択の<name>
要素を出力します。各<name>
要素の内容は、その反復用の変数に$name
現在格納されているインターフェイス名です。最終的な結果は、デバイス上のすべてのギガビット イーサネット インターフェイスのリストです。
for $name (interfaces/interface[starts-with(name, 'ge-')]) { <name> { expr $name; } }
次の例では、ループはfor
1~3の整数を繰り返し、変数$int
は各整数値を想定しています。反復ごとに、コードブロックは、現在の整数値$int
に等しい値を持つ属性item-number
を含む要素を生成<item>
します。
for $int (1 ... 3) { <item> { attribute "item-number" { expr $int; } } } /* Output: <item item-number="1"/><item item-number="2"/><item item-number="3"/> */
リリース情報
Junos OSリリース12.2以降のリリースでサポートされているSLAX言語のバージョン1.1で導入されたステートメント。