Funciones XSLT y XPath
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
distinct-values | XPath |
La función fn:distinct-values devuelve cada uno de los distintos valores de la secuencia de entrada sin tener en cuenta los valores que se repiten. Los valores de la secuencia son comparados mediante un operador de igualdad. Cuando dos valores se reconocen como iguales se devuelve uno solo en la secuencia de salida. Valores numéricos de diferentes tipos pueden ser reconocidos como iguales, de manera que si aparecen por ejemplo el valor 5.0E0 de tipo xs:float y el valor 5.0 de tipo xs:decimal, estos son reconocidos como el mismo y se devuelve por ello una sola vez.
Si la secuencia de entrada contiene distintos tipos de valores que no pueden ser comparados entre sí, como por ejemplo xs:date y xs:string, la función devolverá ambos valores. La secuencia de entrada puede contener una combinación de nodos y valores. Los nodos de la secuencia se convertirán en valores mediante las reglas de conversión habituales. Esto significa que sólo se tiene en cuenta el contenido de los nodos y no, por ejemplo, el nombre de los mismos.
Por lo general el orden de la secuencia de salida es el mismo que el de la secuencia de entrada. Así, en el resultado aparecerán cada uno de los elementos en el lugar donde estos aparecen por primera vez. Sin embargo, debido a que XQuery no puede establecer de manera exacta, qué valores son los que aparecen repetidos, pueden aparecer diferencias en el orden de la secuencia de salida.
Argumentos
Secuencia de valores atómicos
Es obligatorio, pero puede ser una secuencia vacía.
Tipo: xs:anyAtomicType
URI con el criterio de comparación
Opcional
Tipo: xs:string
Valor de salida
Secuencia de todos los valores sin repeticiones.
Tipo: xs:anyAtomicType
Ejemplo
distinct-values((2,3,4,5,6,5,4,3,2,1))
Resultado: 2 3 4 5 6 1
Ejemplo
distinct-values((xs:float('2.0E1'),xs:decimal('20.0'),xs:integer('20'),xs:integer('230'),xs:float('2.3E2')))
Resultado: 20 230
Ejemplo
distinct-values(('a','b','c','a'))
Resultado: a b c
Ejemplo
distinct-values(('alfons', 'peter', 'peter', 'albert'))
Resultado: alfons peter albert
Ejemplo
distinct-values((3+5, 2*8, (), 2*4, 32 div 2))
Resultado: 8 16
Ejemplo
distinct-values(())
Ergebnis:
Ejemplo
distinct-values(doc('ejemplos/ejemplos2.xml')/funciones/funcion/@cat)
Resultado: nombre completo; operación matemática; fecha y hora;
> Volver a la referencia alfabética de XSLT y XPATH |