XSL : Selection balises variables
Vylma
-
Vylma -
Vylma -
Bonjour,
La question vous paraitra peut- etre triviale, mais je debute en XSL!!!
J'ai un fichier XML du type :
<source>
<type1A>
...
</type1A>
<type1B>
...
</type1B>
<type2A>
...
</type2A>
<type2B>
...
</type2B>
</source>
Dans un fichier xsl, je voudrais selectionner l'ensemble des balises dont le nom commence par type. Bref, un truc du style
<xsl:template match select="type*">
J'ai une solution en passant par des noeuds communs contenus dans type*, mais c'est vraiment pas super...
Comment puis-je faire ca?
Merci beaucoup par avance.
La question vous paraitra peut- etre triviale, mais je debute en XSL!!!
J'ai un fichier XML du type :
<source>
<type1A>
...
</type1A>
<type1B>
...
</type1B>
<type2A>
...
</type2A>
<type2B>
...
</type2B>
</source>
Dans un fichier xsl, je voudrais selectionner l'ensemble des balises dont le nom commence par type. Bref, un truc du style
<xsl:template match select="type*">
J'ai une solution en passant par des noeuds communs contenus dans type*, mais c'est vraiment pas super...
Comment puis-je faire ca?
Merci beaucoup par avance.
4 réponses
-
Ce n'est pas possible, tout du moins en xslt 1.0.
Ton XML est mal foutu, les valeurs 1A, 1B, etc.. devraient se situer dans un attribut de la balise. -
Oui, je sais que j'ai un XML mal fouttu, mais je ne l'ai pas choisi!!!
Il est genere automatiquement par une application.
J'ai trouve un semblant de solution avec la chose suivante :
<xsl:template match="/*"> <xsl:for-each select="child::*"> <xsl:choose> <xsl:when test="(substring-before(name(),'1') = 'type') or (substring-before(name(),'2') = 'type')"> <!-- Ici j'ai en selection les differentes structures que je souhaite!!! --> </variable> </xsl:when> </xsl:choose> </xsl:for-each> </xsl:template>
Ensuite, je vais me battre avec les priorites pour ne pas avoir de problemes avec les autres regles de mon XSL!!!
Il y a mieux que ce que j'ai fait???
Merci beaucoup. -
Si tous les noeuds enfants de source sont des typeX, oui tu peux faire mieux.
-