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;
}
}
次の例では、ループはfor1~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で導入されたステートメント。