Esiste un nome-elemento XSLT?

In XSLT c’è il

 

per ottenere il valore di un elemento, ma c’è qualcosa per selezionare il nome-tag dell’elemento?

In una situazione come questa:

   Robert  programmer photography    :   

Per ottenere risultati come questo:

 name : Robert profession : programmer hobby : photography 

Ovviamente il precedente XSLT non verrà compilato perché

   

non esiste Ma come si potrebbe fare?

Questo ti darà il nome dell’elemento corrente (nome del tag)

  

OP-Edit: questo farà anche il trucco:

  

Nessuno ha indicato la sottile differenza nella semantica delle funzioni name() e local-name() .

  • name(someNode) restituisce il nome completo del nodo e include il prefisso e il colon nel caso in cui il nodo sia un elemento o un attributo.
  • local-name(someNode) restituisce solo il nome locale del nodo e questo non include prefisso e due punti nel caso in cui il nodo sia un elemento o un attributo.

Pertanto, in situazioni in cui un nome può appartenere a due spazi dei nomi diversi, è necessario utilizzare la funzione name() affinché questi nomi siano ancora distinti.

E, BTW, è ansible specificare entrambe le funzioni senza alcun argomento :

name() è un’abbreviazione per name(.)

local-name() è un’abbreviazione per local-name(.)

Infine , ricorda che non solo gli elementi e gli attributi hanno nomi, queste due funzioni possono anche essere utilizzate su PI e su queste sono identiche).

    :    

Per chi è interessato, non c’è:

  

Tuttavia puoi ricreare il tag / elemento andando:

    

Ciò è utile in un modello xslt che ad esempio gestisce la formattazione dei valori dei dati per molti elementi diversi. Quando non si conosce il nome dell’elemento su cui si sta lavorando e si può ancora produrre lo stesso elemento e modificare il valore se necessario.

  :