10
votes

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

est-il possible de vérifier le type d'un nœud que je correspond à un modèle dans le même modèle? Si c'est le cas, comment puis-je le faire? Par exemple, je voudrais faire quelque chose comme ceci: xxx


2 commentaires

Tim a donné une bonne réponse, mais je me demande pourquoi vous devez le faire dans le modèle et pourquoi vous n'écrivez pas simplement à des modèles de correspondance plus spécifiques avec des modèles distincts pour les différents types de noeuds.


Je m'intéresse à des fins éducatives. Je construis une transformation XSL pour mettre en surbrillance les nœuds correspondant par des expressions XPath dans un document XML. Dans une application réelle, je ne le ferais pas.


3 Réponses :


21
votes

Jetez un coup d'œil à cette réponse ici, car cela devrait vous donner les informations dont vous avez besoin:

Différence entre: Enfant :: Node () et enfant :: *

Ceci donne le suivant XSL: Choisissez pour tester tous les nœuds, y compris le document nœud. xxx


1 commentaires

Bon, mais vous avez manqué des nœuds d'espace de noms.



6
votes

un moyen plus précis de déterminer si le nœud $ nœud est un nœud racine : xxx

L'expression de la réponse de TIMC teste le type du nœud actuel: xxx

mais n'est pas applicable dans le cas où nous souhaitons déterminer le type d'un nœud dans une variable - qui peut appartenir à un autre document - non pas au document actuel.

aussi, un test d'un nœud d'espace de noms : xxx


0 commentaires

7
votes

Je vous recommande vivement d'utiliser Expressions sur les types de séquence introduits dans XPath 2.0 . Par exemple: xxx


0 commentaires