for-each
構文
for-each (expression) {
/* code */
}
/* Syntax added in version 1.1 of the SLAX language.*/
for-each (min ... max) {
/* code */
}
説明
指定されたノード セット内の各 XML 要素または整数セット内の各値に対してスクリプト処理を繰り返すループ メカニズムを含めます。
引数が XPath 式の場合、要素ノードは XPath 式の値によって選択されます。引数が整数セットの場合、反復演算子(...)は左右のオペランドの間の各整数の値を持つノードのシーケンスを生成します。左項が右項より大きい場合、数値は減少順に生成されます。反復ごとに、内容が評価され、コードブロックに含まれる for-each 命令に従って処理されます。
属性
for-each expression |
処理するノードを選択する XPath 式。 |
max |
整数シーケンスの終了値を定義する整数または変数。終了値が開始値より小さい場合、数値は減少順に生成されます。 |
min |
整数シーケンスの開始値を定義する整数または変数。開始値が終了値よりも大きい場合、数値は減少順に生成されます。 |
SLAX の例
次のコードは、750-000610 に等しいパーツ番号の子要素を持つ各 chassis-sub-module 要素を繰り返します。一致するごとに、スクリプトはモジュールの名前とサブモジュールの名前と説明を持つ要素を出力 <message> します。
for-each ($inventory/chassis/chassis-module/
chassis-sub-module[part-number == '750-000610']) {
<message> "Down rev PIC in " _ ../name _ ", " _ name _ ": " _ description;
}
次のコードは、1~3の整数を繰り返します。反復ごとに、コードブロックは、セットの現在の整数値に等しい値を持つ属性item-numberを含む要素を生成<item>します。
for-each (1 ... 3) {
<item> {
attribute "item-number" {
expr .;
}
}
}
/* Output: <item item-number="1"/><item item-number="2"/><item item-number="3"/> */
使用例
リリース情報
SLAX 言語のバージョン 1.0 で導入されたステートメント。
Junos OSリリース12.2以降のリリースでサポートされているSLAX言語のバージョン1.1で追加された反復演算子(...)のサポート。