Dans XSLT, il y a le
<xsl:value-of select="expression"/>
pour obtenir la valeur d'un élément, mais y a-t-il quelque chose pour sélectionner le nom de balise de l'élément?
Dans une situation comme celle-ci:
<person>
<!-- required stuff -->
<name>Robert</name>
<!-- optional stuff, free form for future extension.
Using XMLSchema's xsd:any -->
<profession>programmer</profession>
<hobby>photography</hobby>
</person>
<xsl:for-each select="person">
<xsl:tag-of select="."/> : <xsl:value-of select="."/>
</xsl:for-each>
Pour obtenir une sortie comme celle-ci:
name : Robert profession : programmer hobby : photography
Bien sûr, le XSLT ci-dessus ne se compilera pas car
<xsl:tag-of select="expression"/>
n'existe pas. Mais comment cela pourrait-il être fait?
Réponses:
Cela vous donnera le nom de l'élément actuel (nom de la balise)
OP-Edit: Cela fera également l'affaire:
la source
Personne n'a souligné la différence subtile dans la sémantique des fonctions
name()
etlocal-name()
.name(someNode)
renvoie le nom complet du nœud, et cela inclut le préfixe et deux-points au cas où le nœud est un élément ou un attribut.local-name(someNode)
renvoie uniquement le nom local du nœud, et cela n'inclut pas le préfixe et deux points au cas où le nœud est un élément ou un attribut.Par conséquent, dans les situations où un nom peut appartenir à deux espaces de noms différents, il faut utiliser la
name()
fonction pour que ces noms soient toujours distingués.Et, BTW, il est possible de spécifier les deux fonctions sans aucun argument :
name()
est une abréviation pourname(.)
local-name()
est une abréviation pourlocal-name(.)
Enfin , rappelez-vous que non seulement les éléments et les attributs ont des noms, ces deux fonctions peuvent également être utilisées sur les PI et sur ceux-ci elles sont identiques).
la source
la source
Pour les personnes intéressées, il n'y a pas:
Cependant, vous pouvez recréer la balise / l'élément en allant:
Ceci est utile dans un modèle xslt qui, par exemple, gère le formatage des valeurs de données pour de nombreux éléments différents. Lorsque vous ne connaissez pas le nom de l'élément sur lequel vous travaillez et que vous pouvez toujours afficher le même élément, et modifier la valeur si nécessaire.
la source
la source