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