saxon:sort
Sorts a sequence of items.
sort($seq as item()*) ➔ item()*
Arguments | |||
| $seq | item()* | The sequence to be sorted |
Result | item()* |
sort($seq as item()*, $sort-key as function(item()) as xs:anyAtomicType) ➔ item()*
Arguments | |||
| $seq | item()* | The sequence to be sorted |
| $sort-key | function(item()) as xs:anyAtomicType | A function used to compute the sort key |
Result | item()* |
Namespace
http://saxon.sf.net/
Notes on the Saxon implementation
Available since Saxon 8.9.
Details
The first form of the function sorts a sequence of nodes and/or atomic values. For atomic values, the value itself is used as the sort key. For nodes, the atomized value is used as the sort key. The atomized value must be a single atomic value. The values must all be comparable. Strings are sorted using codepoint collation.
The second form of the function sorts a sequence of nodes and/or atomic values, using the supplied function to compute the sort key for each item in the sequence. The computed sort key must either be a single atomic value, or a node that atomizes to a single atomic value, and the sort keys must all be comparable. Strings are sorted using codepoint collation.
The supplied function takes as its argument an item in the sequence to be sorted, and
returns as its result an atomic value representing the sort key. The function is
evaluated for each item in $seq
in turn.
Example: saxon:sort(sale, function($node) {$node/(@price * @qty)})
will
evaluate price times quantity for each child <sale>
element, and
return the sale
elements in ascending numeric order of this value.