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
lang | XPath Herkunft: XSLT 1.0 |
La función fn:lang comprueba si el nodo introducido en el segundo argumento tiene asignado el idioma especificado en el primero. Un nodo tendrá asignado un idioma si él mismo o un ascendiente tiene un atributo xml:lang, en el cual se defina el respectivo idioma. La función devolverá un valor booleano, por lo que es posible filtrar de esta manera los nodos que tengan asignado un determinado idioma.
El nodo no deberá poseer necesariamente una cadena. Se podrá examinar el idioma de cualquier nodo. El atributo xml:lang se encontrará bien en el mismo nodo o en uno de los ascendientes (en caso de que varios ascendientes tengan especificado un atributo xml:lang, se tomará el del ascendiente más próximo).
La comprobación del idioma se realiza sobre todo mediante la comparación de las cadenas del primer argumento con el valor de los correspondientes atributos xml:lang. En xml:lang los idiomas se especifican mediante las etiquetas de idioma en html y xml, según los códigos ISO 639, o según un código de idiomas definido por el usuario. Si se introduce, por ejemplo, en el primer argumento de fn:lang las siglas "fr" para francés, la función devolverá el valor "true" si el atributo tiene asignada la referencia específica "fr-CA" para francés de Canadá, ya que se trata de una especificación del francés. Sin embargo, en el caso de una consulta de un nodo cuyo idioma asignado es el francés ("fr"), se devolverá "false" si el valor introducido en el primer argumento de la función es "fr-CA".
Argumentos
Código de idioma
Es obligatorio, pero puede ser una secuencia vacía.
Tipo: xs:string
Nodo, cuyo idioma se quiere comprobar
Opcional
Tipo: node()
Valor de salida
Valor booleano. Se devolverá el valor "true" si el idioma del nodo coincide con el valor introducido.
Tipo: xs:boolean
Ejemplo
lang('', doc('ejemplos/ejemplo5.xml')/funciones/funcion[4])
Resultado: false
Ejemplo
lang('es', doc('ejemplos/ejemplo5.xml')/funciones/funcion[1]/name)
Resultado: true
Ejemplo
lang('es', doc('ejemplos/ejemplo5.xml')/funciones/funcion[2])
Resultado: true
Ejemplo
lang('es-419', doc('ejemplos/ejemplo5.xml')/funciones/funcion[1])
Resultado: false
El idioma del elemento "es". Sin embargo, se está buscando expresamente español con la especificación regional de Latinoamérica.
Ejemplo
lang('es', doc('ejemplos/ejemplo5.xml')/funciones/funcion)
Resultado: Aviso de error: A sequence of more than one item is not allowed as the second argument of lang() (, , ...); URL: www.w3.org/TR/xpath20/
> Volver a la referencia alfabética de XSLT y XPATH |