XSL : Selection balises variables

Fermé
Vylma - 11 sept. 2009 à 10:25
 Vylma - 11 sept. 2009 à 16:30
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.

4 réponses

P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
11 sept. 2009 à 10:33
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.
0
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.
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
11 sept. 2009 à 13:00
Si tous les noeuds enfants de source sont des typeX, oui tu peux faire mieux.
0
Malheureusement, ce n'est pas le cas...
0