Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

sort

语法

描述

控制 和for-eachapply-templates语句循环访问当前节点列表的顺序。默认情况下,for-eachand apply-templates 语句会按文档顺序考虑节点,但该sort语句在循环访问节点列表之前定义顺序。紧sort跟在 or apply-templates 语句之后for-each插入语句。sort仅在首次启动循环时处理该语句。

sort 语句有一个可选的 XPath 表达式和三个可选参数: case-orderdata-typeorder。XPath 表达式确定用于排序的每个节点的比较字符串。该脚本以节点作为其上下文计算表达式,然后将结果转换为该节点的比较字符串。如果未指定 XPath 表达式,则默认值为“.”,这将导致比较列表中每个节点的字符串内容。特定于 SLAX 的运算符(如 == 和 _)不能在表达式字符串中使用。 sort 如果语句不包含任何可选参数,则根据每个节点的字符串值对列表进行排序。

sort语句不会对底层 XML 数据结构进行永久排序,只会对 or apply-templates 语句使用的for-each当前节点列表的顺序进行排序。可以将多个sort语句分配给单个for-each语句或语句apply-templates。按顺序应用它们,直到发现差异。

属性

expression

XPath 表达式,用于确定用于排序的每个节点的比较字符串。默认值为“.”。

case-order

指定是先小写排序还是先大写排序。可接受的值为“低优先”或“高优先”。默认值为“上优先”。

data-type

指定元素类型,该类型确定是执行数字、词法还是其他排序。可接受的值为“数字”和“文本”。默认值为“文本”。

data-type设置为“text”根据字符串的字符值(即ASCII代码)比较字符串,因此“0”小于“9”,小于“A”,小于“Z”,小于“a”,小于“z”。设置为data-type“数字”会将字符串转换为数字并以数字方式进行比较。使用升序文本排序时,“100”将排在“11”之前,因为“0”的 ASCII 代码低于“1”,但使用升序数字排序时,11 将排在 100 之前,因为 11 比 100 小。

order

指定是按升序还是降序排序。可接受的值为“降序”或“升序”。默认值为“升序”。

SLAX 示例

以下示例 SLAX 脚本执行 Junos XML API get-interface-information 命令并解析生成的输出。循环打印 for-each 设备上每个物理接口的名称,按升序排序。

发布信息

SLAX 语言 1.1 版中引入的语句,Junos OS 12.2 版及更高版本中支持该语言。