La troisième (cinquième :zoubi: ?) colonne
1°) en ce qui concerne le fichier xml, je n'ai pas la main dessus. je suis en profession libérale et j'ai besoin d'un fichier client auquel le client peut accéder également. Qq'un de sympa m'a filer un programme (plusieurs milliers de ligne) en toute légalité destiné aux entreprises. Je dois donc me débrouiller avec...
2°) Comme je te l'ai dit dans mon mp, je débute et j'ai qques pb de compréhension notamment avec les template.
3°) Sur le bout de programme suivant:
Code:
1 2 3 4 5 6 7 8
| <xsl:template match="DEBUT">
<table width="95%" border="5" cellpadding="5" cellspacing="1" align="left">
<tr>
<xsl:apply-templates select="COLUMN_LIST/COLUMN"/>
</tr>
<xsl:apply-templates select="CLUSTER_ENTRY/PARAMETER"/>
</table>
</xsl:template> |
Est-ce que on peut dire qu'en qque sorte, il s'agit de la "fonction principale", c'est à dire qu'il déclare un modèle (mais quel modèle?? Les <xsl:apply-templates select="COLUMN_LIST/COLUMN"/> et <xsl:apply-templates select="CLUSTER_ENTRY/PARAMETER"/> qui sont définis après c'est-à-dire dans "<xsl:template match="COLUMN">" notamment?). est-ce bien cela?
4°) Pour le code:
Code:
1 2 3
| <xsl:template match="COLUMN">
<th><xsl:value-of select="@name"/> *</th>
</xsl:template> |
C'est clair, j'ai compris, pas de pb.
4°) En revanche pour
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <xsl:template match="PARAMETER[@paramName='Nom']">
<tr>
<td> *<xsl:value-of select="PARAMETER_DEFINITION/@paramValue"/> *</td>
<xsl:choose>
<xsl:when test="following-sibling::PARAMETER/@paramName = 'Prenom'">
<td> *<xsl:value-of select="following-sibling::PARAMETER/PARAMETER_DEFINITION/@paramValue"/> *</td>
</xsl:when>
<xsl:otherwise>
<td>N/A</td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template> |
je dois avouer que c'est bcp plus flou et que j'aurais été incapable de le trouver...
Si je comprends chaque ligne, j'ai du mal à saisir le raisonnement global. Quel a été ton raisonnement pour parvenir à ce résultat?
5° et dernièrement)
Lorsque je rajoute dans le xml des noms et prénoms (c'est-à-dire de nouvelles lignes = nouveaux clients), pas de pb.
En revanche, lorsque j'essaie de rajouter une nouvelle colonne (par exemple une adresse, une nationalité), c'est la cata, il ne le prend pas en compte.
Voici les lignes que j'ai rajoutées:
Code:
1 2 3
| <PARAMETER freeParamObjectId="0" freeParamStructSTDCategory="" freeParamStructSTDColor="" freeParamStructSTDSubTypeName="" freeParamStructSTDTranslatedSubTypeName="" paramName="Nationalite" paramTranslatedName="Nationalité" paramType="STRING">
<PARAMETER_DEFINITION paramTranslatedValue="Française" paramValue="Française"/>
</PARAMETER> |
j'ai essayé ça, et bien évidemment ça ne marche pas...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <xsl:template match="PARAMETER[@paramName='Nom']">
<tr>
<td><xsl:value-of select="PARAMETER_DEFINITION/@paramValue"/></td>
<xsl:choose>
<xsl:when test="following-sibling::PARAMETER/@paramName = 'Prenom'">
<td> <xsl:value-of select="following-sibling::PARAMETER/PARAMETER_DEFINITION/@paramValue"/> </td>
</xsl:when>
<xsl:when test="following-sibling::PARAMETER/@paramName = 'Nationalite'">
<td> <xsl:value-of select="following-sibling::PARAMETER/PARAMETER_DEFINITION/@paramValue"/> </td>
</xsl:when>
<xsl:otherwise>
<td>N/A</td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template> |
Je pense que ça vient du fait que dans <xsl:choose>, il ne peut y avoir qu'un seul <xsl:when> d'exact et pas plusieurs. Mais alors comment faire? Car j'ai d'autres colonnes à ajouter: adresse, téléphone, paiement facture etc...
Je m'excuse d'avoir été aussi long et vous remercie par avance de vos réponses.