Bonjour a tous,
Je ne suis pas un expert en XSL et je rencontre un probleme que je n'arrive pas a résoudre depuis hier ...
La solution doit etre toute bête mais je m'enfonce a chaque essai ...
Mon XMl est de la forme: (cela a peut etre un rôle important mais je ne peut pas l'avoir autrement)
Et voici le XSL correspondant appelé depuis une page HTML.
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <?xml version = "1.0" encoding="Windows-1252" standalone="yes"?> <VFPData> <xsd:schema id="VFPData" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="VFPData" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="row" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="l1" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="15"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> (....) <xsd:attribute name="new_ligne" type="xsd:boolean" use="required"/> <xsd:attribute name="numsem" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:decimal"> <xsd:totalDigits value="2"/> <xsd:fractionDigits value="0"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute></xsd:complexType> </xsd:element> </xsd:choice> <xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax"/> </xsd:complexType> </xsd:element> </xsd:schema> <row l1="Azerty Gazerty9" new_ligne="true" numsem="49" /> <row l1="Azerty Gazerty9" new_ligne="false" numsem="49" /> (....) </VFPData>
Je pense que le problème vien de la ligne :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- Affichage appliqué a partir de la base des enregistrements --> <xsl:template match="/"> <!-- Tableau en HTML centré--> <table class="tab_planning"> (....) <xsl:apply-templates/> </table> </xsl:template> <!-- Template pour les lignes --> <xsl:template match="VFPData/row"> <!-- Ici on utilise VFPData/row --> <!-- variable --> <xsl:variable name="Xnumsem"> <xsl:value-of select="numsem|@numsem"/> </xsl:variable> <!-- si la semaine n'est pas vide (00) --> <xsl:if test="not($Xnumsem=00)"> <xsl:choose> <xsl:when test="new_ligne|@new_ligne='true'"> <!-- Nouvelle ligne --> <tr class="tr_planning"> <!-- 1ere cellule d'entete --> <td class="td_semaine">Semaine <xsl:value-of select="format-number(numsem|@numsem,'00')"/><br/> Du <xsl:value-of select="du|@du"/><br/> Au <xsl:value-of select="au|@au"/> </td> <!-- pas de problème pour cette premiere partie ! --> <!-- cellule suivante ( Ceci pose problème ! )--> <xsl:for-each select="@*"> <!-- @* pour désigner tout attribut car VFPData/row ne marche pas :/ ...--> <xsl:if test="format-number($Xnumsem,'00')=(numsem|@numsem)"> <td class="td_planning"> <xsl:value-of select="l1|@l1"/> </td> </xsl:if> <!-- rien n'est affiché alors que la condition est forcement vérifiée a un moement donné ! --> </xsl:for-each> </tr> </xsl:when> </xsl:choose> </xsl:if> </xsl:template> </xsl:stylesheet>
<xsl:for-each select="@*">
Avec d'autres valeur dans le select il ne se passe rien . C'est comme si le "pointeur" XSL etait perdu et n'accedait pas aux element !
Pouvez-vous me venir en aide s'il vous plait??
Ya t'il une autre methode pour faire grossierement le meme déroulement (template pour toutes les lignes avec une boucle sur toutes les lignes a l'intérieur)
Si vous avez besoin d'explication je reste dispo.
Merci d'avance.
Partager