Bonjour,

J'ai besoin de faire une boucle imbriquée dans mon XSL pour comparer le nom des variables et récuperer leur valeurs.

XML :

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
 <s:Schema id="RowsetSchema">
        <s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30">
            <s:AttributeType name="ows_Attachments" rs:name="Pièces jointes" rs:number="1">
                <s:datatype dt:type="boolean" dt:maxLength="1" />
            </s:AttributeType>
            <s:AttributeType name="ows_LinkTitle" rs:name="Titre" rs:number="2">
                <s:datatype dt:type="string" dt:maxLength="512" />
            </s:AttributeType>
            <s:AttributeType name="ows_Variable1" rs:name="Variable1" rs:number="3">
                <s:datatype dt:type="float" dt:maxLength="8" />
            </s:AttributeType>
            <s:AttributeType name="ows_variable2" rs:name="variable2" rs:number="4">
                <s:datatype dt:type="float" dt:maxLength="8" />
            </s:AttributeType>
        </s:ElementType>
    </s:Schema>
    <rs:data>
        <z:row ows_Attachments="0" ows_LinkTitle="client1" ows_Variable1="125.512212" ows_variable2="259.000000000000" />
        <z:row ows_Attachments="0" ows_LinkTitle="client2" ows_Variable1="258.000000000000" ows_variable2="256.000000000000" />
    </rs:data>
mon XSL :

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
   <table border="1" id="lesClients">
                    <xsl:for-each select="//rs:data/z:row">
                        <xsl:variable name="ID" select="position()"/>
                        <tr>                            
                            <td WIDTH="70" align="center" onClick="put({$ID})"  title="Cliquez pour executer">
                                <b><xsl:value-of select="@ows_LinkTitle" /></b>
                            </td>
                            <xsl:for-each select="@*">
                                <xsl:variable name="var" select="."/>
                                <xsl:for-each select="//s:ElementType/s:AttributeType/@*">
                                        <xsl:variable name="i" select="position()"/>
<xsl:variable name="var2" select="."/>
                                    <xsl:if test="$var=$var2">
                                        <td title="variable{$i}" id="T{$ID}{.}">                                    
                                            <xsl:value-of select="floor(.)"/>	
                                        </td>
                                    </xsl:if>
                                 </xsl:for-each>
                           </xsl:for-each>
                        </tr>
                    </xsl:for-each>
                </table>
Enfaite j'aimerai récuperer la valeur de chaque variable ows_Variable1(ows_Variable2, ...) ainsi que son nom(mais il me faut son nom pour récuper sa valeur ...) qui est dans le rs:name qui est enfaite son nom de variable sans le "ows_". Pour ça j'ai pensé à parcourir les attribut de chaque element z:row et les comparer avec les attributs de chaque élement AttributesTypes et quand ils sont pareil j'affiche la valeur et je recuperere le nom ... possible?