SLAX 元素作为功能参数
从 Junos OS 版本 14.2 和更高版本中支持的 SLAX 语言版本 1.2 开始,您可以直接使用 SLAX 元素作为功能和模板的参数。功能参数可以是单个元素或一块 SLAX 代码,放置在大括号内,如以下示例所示:
var $a = my:function(<elt>,<max> 15);
var $b = my:test ({ <min> 5; <max> 15; if ($step) { <step> $step; } });
var $c = my:write(<content> { <document> "total.txt"; <size> $file/size; if (node[@type == "full"]) { <full>; } });
对于模板,您仍需要包含参数名称,但值可以是内联的。例如:
call my:valid($name = <name> $input, $object = { <min> $min; <max> $max; });
主模板
从 Junos OS 版本 14.2 和更高版本中支持的 SLAX 语言版本 1.2 开始, main 该模板在 SLAX 中引入。该 main
模板使您能够处理输入 XML 文档,并为输出层次结构提供顶层元素。该 main
模板等同于使用 match /
,但略为方便。
您可以使用 该 main
语句与输入数据层次结构的顶部匹配,并创建输出层次结构的顶层标记。您可以使用以下两种形式的语句:有或不使用输出标记。当您省略输出元素时, main
后面是一组括号内的语句块,如以下示例所示:
main { <top> { <answer> 42; } }
该 main
模板还可用于令牌之后 main
的顶级输出元素,如以下示例所示:
main <top> { <answer> 42; }
前面两个示例都等同于以下 XSLT 版本:
<xsl:template match="/"> <top> <answer>42</answer> </top> </xsl:template>