sort
構文
sort expression {;
case-order "upper-first" | "lower-first";
data-type "text" | "number" | type-name;
order "ascending" | "descending";
}
説明
および apply-templates ステートメントが現在のノードリストをfor-each繰り返す順序を制御します。デフォルトでは、 および apply-templates ステートメントはノードをfor-eachドキュメントの順序で考慮しますが、 ステートメントはsortノードリストを反復処理する前の順序を定義します。または apply-templates ステートメントの直後に sort ステートメントをfor-each挿入します。ステートメントはsort、ループが最初に開始された場合にのみ処理されます。
sortステートメントには、オプションの XPath 式と、3 つのオプション パラメーターがあります。ordercase-orderdata-typeXPath 式は、並べ替えに使用される各ノードの比較文字列を決定します。スクリプトはノードを持つ式をコンテキストとして評価し、結果をそのノードの比較文字列に変換します。XPath 式を指定しない場合、デフォルト値は「.」となり、リスト内の各ノードの文字列内容が比較されます。== や _ などの SLAX 固有の演算子は、式文字列内では使用できません。ステートメントにsortオプションパラメータが含まれていない場合、各ノードの文字列値に基づいてリストがソートされます。
ステートメントはsort、基になる XML データ構造を永続的にソートせず、 または apply-templates ステートメントでfor-each使用されている現在のノードリストの順序のみを表示します。1 つのfor-eachまたは apply-templates ステートメントに複数sortのステートメントを割り当てることができます。それらは、違いが見つかるまで順に適用されます。
属性
expression |
並べ替えに使用される各ノードの比較文字列を決定する XPath 式。デフォルト値は「..」です。 |
case-order |
最初に小文字をソートするか、最初に大文字でソートするかを指定します。許容できる値は、「下位優先」または「上位優先」です。デフォルトは「上位優先」です。 |
data-type |
要素タイプを指定して、数値、字句、またはその他の並べ替えを実行するかどうかを決定します。許容できる値は「数値」と「テキスト」です。デフォルトは「テキスト」です。 「text」に設定 |
order |
昇順または降順で並べ替えるかどうかを指定します。許容できる値は「降順」または「昇順」です。デフォルトは「昇順」です。 |
SLAX の例
次の SLAX スクリプトの例では、Junos XML API get-interface-information コマンドを実行し、結果の出力を解析します。ループは for-each 、昇順でソートされたデバイス上の各物理インターフェイスの名前を印刷します。
version 1.1;
ns junos = "http://xml.juniper.net/junos/*/junos";
ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
match / {
<op-script-results> {
var $results = jcs:invoke("get-interface-information");
for-each ($results/physical-interface/name) {
sort . {
data-type "text";
order "ascending";
}
<interface-name> .;
}
}
}
リリース情報
Junos OSリリース12.2以降のリリースでサポートされているSLAX言語のバージョン1.1で導入されたステートメント。