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 示例
以下代码循环 chassis-sub-module
访问部件号子元素等于 750-000610 的每个元素。对于每个匹配项,脚本都会输出一个 <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>
元素,该元素包含值 item-number
等于集合的当前整数值的属性。
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 版中引入的语句。
支持在 SLAX 语言 1.1 版中添加的迭代运算符 (...),Junos OS 12.2 版及更高版本中支持该语言。