¿Hay un nombre de elemento XSLT?

En XSLT está el

 

para obtener el valor de un elemento, pero ¿hay algo para seleccionar el nombre de etiqueta del elemento?

En una situación como esta:

   Robert  programmer photography    :   

Para obtener una salida como esta:

 name : Robert profession : programmer hobby : photography 

Por supuesto, el XSLT anterior no se comstackrá porque

   

no existe Pero, ¿cómo podría hacerse esto?

Esto le dará el nombre del elemento actual (nombre de la etiqueta)

  

OP-Edit: Esto también hará el truco:

  

Nadie señaló la sutil diferencia en la semántica de las funciones name() y local-name() .

  • name(someNode) devuelve el nombre completo del nodo, y eso incluye el prefijo y los dos puntos en caso de que el nodo sea un elemento o un atributo.
  • local-name(someNode) devuelve solo el nombre local del nodo, y eso no incluye el prefijo y los dos puntos en caso de que el nodo sea un elemento o un atributo.

Por lo tanto, en situaciones donde un nombre puede pertenecer a dos espacios de nombres diferentes, uno debe usar la función name() para que estos nombres se sigan distinguiendo.

Y, por cierto, es posible especificar ambas funciones sin ningún argumento :

name() es una abreviatura para name(.)

local-name() es una abreviatura para local-name(.)

Finalmente , recuerde que no solo los elementos y atributos tienen nombres, estas dos funciones también se pueden usar en IP y en estos son idénticos).

    :    

Para aquellos interesados, no hay:

  

Sin embargo, puede volver a crear la etiqueta / elemento yendo:

    

Esto es útil en una plantilla xslt que, por ejemplo, maneja el formato de los valores de datos para muchos elementos diferentes. Cuando no se conoce el nombre del elemento en el que se está trabajando y aún se puede generar el mismo elemento, y modificar el valor si es necesario.

  :