XSL : Selection balises variables

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.

4 réponses

P@t@ch0n Messages postés 603 Statut Membre 85
 
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
Vylma
 
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 603 Statut Membre 85
 
Si tous les noeuds enfants de source sont des typeX, oui tu peux faire mieux.
0
Vylma
 
Malheureusement, ce n'est pas le cas...
0