1 pièce(s) jointe(s)
XSLT, et conditions XPath prédicat ?
Bonjour à tous,
j'ai à nouveau, problème...
voici la partie du fichier xml qui pose problème
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <Resultats>
<Ligne Nombre="1">
<Label>MESURES SUR LE SITE DE PARIS</Label>
</Ligne>
<Ligne Nombre="2" >
<Date>2000-01-01 01:00:00+01:00</Date>
<Val>27</Val>
<Val>3</Val>
<Val>15</Val>
<Val>0</Val>
<Val>0</Val>
<Val>15</Val>
<Val> </Val>
<Val>0</Val>
</Ligne>
<Ligne Nombre="3">
<Date>2000-01-01 02:00:00+01:00</Date>
<Val>25</Val>
<Val>2</Val>
<Val>14</Val>
<Val>0</Val>
<Val>0</Val>
<Val>18</Val>
<Val> </Val>
<Val>0</Val>
</Ligne>
</Resultats> |
Et voici la partie de mon XSL qui traite ceci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <xsl:for-each select="//Ligne">
<tr class="soustitre">
<td colspan="100%">
<xsl:value-of select="Label"/>
</td>
</tr>
<tr>
<td>
<xsl:variable name="date" select="Date"/>
<xsl:value-of select="concat(substring($date, 9, 2),'/', substring($date, 6, 2),'/', substring($date,1,4))"/> <!-- pour mettre la date au format jj/mm/aa -->
</td>
<xsl:for-each select="Val">
<td>
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each> |
Il me crée un <tr> avec la valeur du label dont la largeur est le tableau en entier et en dessou un autre <tr>.
J'ai mis en fichier joint une capture d'écran.
J'ai testé en faisant un test conditionnel mais ca n'a pas marché car il me dit qu'on ne peut faire ceci :
<xsl:for-each select="//Ligne">
<xsl:if select="Label"> //Un select est impossible dans un if
La solution est je pense de traduire en langage le :
pour chaque balise Ligne
si je rencontre la balise <label>
je créer un tr de la largeur du tableau
(sinon) je crée mes cellules normalement
Quelqu'un peut-il m'aider ?
A mon avis la solution vient peut être des prédicats XPath...