XSLT sert à générer un vouveau document XML, je ne vois pas très bien ce que tu veux dire par nouveau noeuds ou noeuds existents...
tu peux donner le code de tes templates et des exemples de ce que tu voudrais faire ?
XSLT sert à générer un vouveau document XML, je ne vois pas très bien ce que tu veux dire par nouveau noeuds ou noeuds existents...
tu peux donner le code de tes templates et des exemples de ce que tu voudrais faire ?
dans mon fichier de transformation (avant le bout de code que tu ma's filé) j'ai un:Envoyé par Swoög
ce qui me donne à la sortie des elements "C" parsés 3 fois de manière differentes (la premiere applique le template que je viens d'ecrire et la deuxieme et troisieme appliquent les templates appelés dans les IF)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <xsl:template match="*|@*" periority="-1"> <xsl:copy> <xsl:apply-templates select="@*|*|text()"/> </xsl:copy> </xsl:template>
maintenant je veux ajouter une condition dans le template que je viens d'ecrire afin d'ignorer les elements "C"?! est ce que c'est possible?
PS: le PB c'est que le code est deja ecrit et je dois faire des modifications et je trouve ça un peu galère je prefere le reprendre mais je n'ai pas le choix :![]()
pour ignorer les éléments C il te faut un XPath qui les ignore :par exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part *[not(name()='C')]|@*
Un peu plus performant :Envoyé par Swoög
Code : Sélectionner tout - Visualiser dans une fenêtre à part *[not(self::C)]/@*
Les 2 expressions Xpath ignorent l'element 'C' mais elles me donnent tjrs à la sortie les enfants de 'C' !!! comment faire pour ignorer C et ses enfants? Ne serait it pas mieux de faire des templates pour les elements que je veux voir à la sortie et de supprimer la règle générale?
ça dépend de ce que tu veux faire :
soit tu veux une règle générale pour toutes les balises excepté cetaines balises...
dans ce cas, il suffit d'avoir le bon match.
soit tu veux faire ds traitements différents pour chaque élément
dans ce cas, il te faut plusieurs templates...
pour le premier cas : tous éléments et attributs non-descendants de C et n'étant pas eux-même des C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part (*|@*)[not(ancestor-or-self::C)]
merci bcp pour ta réponse.
finalement j'ai opté pour la 2eme solution et j'ai fait pleins de templates ...le résultat est bon.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager