Vérifiez le type de nœud dans XSL modèle

Est-il possible de vérifier le type d'un nœud j'ai mis en correspondance avec un modèle à l'intérieur du même modèle? Dans le cas où il est, comment puis-je le faire? Pour exemple, j'aimerais faire quelque chose comme ceci:

<xsl:template match="@*|node()">
    <xsl:choose>
        <xsl:when test="current() is an attribute">
        <!-- ... -->
        </xsl:when>
        <xsl:when test="current() is an element">
        <!-- ... -->
        </xsl:when>
        <xsl:otherwise>
        <!-- ... -->
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>
  • Tim a donné une belle réponse, mais je me demande pourquoi vous avez besoin pour ce faire à l'intérieur du modèle et pourquoi vous ne vous contentez pas d'écrire plus de match les modèles avec des modèles distincts pour les différents types de nœuds.
  • Je suis intéressé à des fins éducatives. Je fais construire une transformation XSL pour mettre en évidence les nœuds qui correspondent à des expressions XPath dans un document XML. Dans une application réelle, je ne voudrais pas le faire.
InformationsquelleAutor hielsnoppe | 2013-01-02