Salut,
(Désolé pour le titre, mes connaissances d'XSLT sont des plus rudimentaires, et ce que je cherche à faire correspond vaguement à un global/pattern/substitute/autre-pattern/texte-de-remplacement/ (pour ceux qui connaissent sed/vim))
Mon but est de remplacer certains tableaux dans un document par autre chose, et de laisser tout le reste inchangé. En piquant, et retouchant, des morceaux de code à droite à gauche, j'ai trouvé de quoi copier sans altérer, et de quoi reconnaitre mes tableaux. Ou presque.
Seul problème, c'est que les
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <!-- convert.xsl --> ... <!-- ==========================[ Rules tables ]=========================== --> <xsl:template match="//informaltable/tgroup[@cols=2]/tbody"> foo </xsl:template> <!-- ==========================[ Identity ]=============================== --> <xsl:template match="@*"> <xsl:copy /> </xsl:template> <xsl:template match="*"> <xsl:copy> <xsl:apply-templates select="* | text() | @*"/> </xsl:copy> </xsl:template>
sont transformés en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <informaltable frame="all"> <tgroup cols="2"> <tbody> <row> bar </row> </tbody> </tgroup> </informaltable>
alors que j'aurais voulu tout dégager depuis les <informaltable/> (seulement dans ce cas de "cols=2", et de une seule balise <row/> si possible)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <informaltable frame="all"> <tgroup cols="2"> foo </tgroup> </informaltable>
Je soupçonne que mes problèmes viennent que <informaltable/> est matché par la règle générique.
Il y a-t-il un moyen simple de dire "l'ensemble de la table si elle est reconnue" ?
Partager