2010-06-21 6 views
1

Supposons que j'ai XML comme ceci:qui disjoint dans Déterminer un xsl: template match adapté

<xsl:template match="assessment | section "> 
      . 
      . 
      . 
</xsl:template> 

Je le fais parce que je veux surtout traiter assessment et section nœuds même. Cependant, je veux les traiter un peu différemment. Comment puis-je savoir si un match était pour assessment ou pour section?

+0

Je peux voir que vous êtes répondre à vos propres questions. Il n'y a rien de mal à cela fourni pour servir la communauté. Mais beaucoup d'entre eux sont très simples, plus caractéristiques de tout tutoriel XSLT. Par exemple, la dernière que vous venez de faire est mal formulée. Quelle est la signification de * traiter l'évaluation et les nœuds de section de la même * mais * les traiter un peu différemment *? –

Répondre

0

quelque chose comme ça:

<xsl:if test="name()='section'"> 
</xsl:if> 
0

Vous pouvez tester:

self::assessment 

qui est légèrement plus efficace que d'utiliser la fonction name().

Cependant, dans des cas comme celui-ci je vais mettre le code commun dans un autre modèle (soit nommé ou dans un mode nommé) et instancier le traitement commun comme celui-ci:

<xsl:apply-templates select="." mode="common"/> 
Questions connexes