Returns a sequence of positive integers giving the positions within the sequence
$seq of items that are equal to $search.
fn:index-of( $seq as xs:anyAtomicType*,$search as xs:anyAtomicTypexs:integer*fn:index-of( $seq as xs:anyAtomicType*,$search as xs:anyAtomicType,$collation as xs:stringxs:integer*The function returns a sequence of positive integers giving the positions within the
sequence $seq of items that are equal to $search.
The collation used by this function is determined according to the rules in . This collation is used when string comparison is required.
The items in the sequence $seq are compared with $search under
the rules for the eq operator. Values of type xs:untypedAtomic
are compared as if they were of type xs:string. Values that cannot be
compared, because the eq operator is not defined for their types, are
considered to be distinct. If an item compares equal, then the position of that item in
the sequence $seq is included in the result.
The first item in a sequence is at position 1, not position 0.
The result sequence is in ascending numeric order.
The expression fn:index-of((10, 20, 30, 40), 35) returns ().
The expression fn:index-of((10, 20, 30, 30, 20, 10), 20) returns (2, 5).
The expression fn:index-of(("a", "sport", "and", "a", "pastime"),
"a") returns (1, 4).
The expression fn:index-of(current-date(), 23) returns ().
The expression fn:index-of([1, [5, 6], [6, 7]], 6) returns (3, 4).
If @a is an attribute of type xs:NMTOKENS whose string
value is "red green blue", and whose typed value is therefore
("red", "green", "blue"), then fn:index-of(@a, "blue")
returns 3. This is because the function calling mechanism atomizes the
attribute node to produce a sequence of three xs:NMTOKEN values.
If the value of $seq is the empty sequence, or if no item in
$seq matches $search, then the function returns the empty
sequence.
No error occurs if non-comparable values are encountered. So when comparing two atomic
values, the effective boolean value of fn:index-of($a, $b) is true if
$a and $b are equal, false if they are not equal or not
comparable.