Bonjour à tous,

Je suis un gros zéro en XSL.
La question vous semblera stupide.

Voici le code du fichier 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
 
<xsl:template match="/rep1/rep2">
    <xsl:variable name="value" select="rep1/rep2/Lieu" />
    <xsl:choose>
          <xsl:when test="$value = 'Cuisine'">
                <resultat1>
                     <xsl:apply-templates/>
                </resultat1>
          </xsl:when>
          <xsl:when test="$value = 'Chambre'">
                <resultat2>
                     <xsl:apply-templates/>
                </resultat2>
          </xsl:when>
          <xsl:when test="$value = 'Salon'">
                <resultat3>
                     <xsl:apply-templates/>
                </resultat3>
          </xsl:when>
    </xsl:choose>
</xsl:template>
Ce fichier XSL (ci-dessus) est lié à un fichier PDF. Lorsque l'utilisateur exporte les données, un fichier XML est crée (exemple ci-dessous) et ce fichier XSL est exécuté.

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
 
<?xml version="1.0" encoding:"UTF-8"?>
<rep1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0 of 01-01-2025" xsi:noNamespaceSchemaLocation="exemple.xsd">
     <formVersion>Document 1.0</formVersion>
     <rep2>
           <Description>Lit Baldaquin</Description>
           <Prix>500</Prix>
           <Lieu>Chambre</Lieu>
     </rep2>
     <rep2>
           <Description>Four</Description>
           <Prix>60</Prix>
           <Lieu>Cuisine</Lieu>
     </rep2>
     <rep2>
           <Description>Lave-Vaisselle</Description>
           <Prix>150</Prix>
           <Lieu>Cuisine</Lieu>
     </rep2>
     <rep2>
           <Description>Bibliothèque</Description>
           <Prix>450</Prix>
           <Lieu>Salon</Lieu>
     </rep2>
L'exemple que je donne est stupide. Dans la réalité, je ne peux pas vous montrer les données réelles.
C'est pour comprendre le principe.

Ce que devrait faire le fichier XSL: c'est que rep2 dois changer de nom en fonction de la valeur du champ "Lieu"

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
<?xml version="1.0" encoding:"UTF-8"?>
<rep1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0 of 01-01-2025" xsi:noNamespaceSchemaLocation="exemple.xsd">
     <formVersion>Document 1.0</formVersion>
     <resultat2>
           <Description>Lit Baldaquin</Description>
           <Prix>500</Prix>
           <Lieu>Chambre</Lieu>
     </resultat2>
     <resultat1>
           <Description>Four</Description>
           <Prix>60</Prix>
           <Lieu>Cuisine</Lieu>
     </resultat1>
     <resultat1>
           <Description>Lave-Vaisselle</Description>
           <Prix>150</Prix>
           <Lieu>Cuisine</Lieu>
      </resultat1>
      <resultat3>
           <Description>Bibliothèque</Description>
           <Prix>450</Prix>
           <Lieu>Salon</Lieu>
     </resultat3>
Voilà à quoi devrait ressembler le résultat final.

Mais voilà. Cela ne fonctionne pas.
J'aimerais donc débugger le fichier XSL pour connaitre la valeur de la variable "value" !
Je n'y arrive pas

Le résultat que je reçois actuellement est:

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
<?xml version="1.0" encoding:"UTF-8"?>
<rep1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0 of 01-01-2025" xsi:noNamespaceSchemaLocation="exemple.xsd">
     <formVersion>Document 1.0</formVersion>
     <resultat1>
           <Description>Lit Baldaquin</Description>
           <Prix>500</Prix>
           <Lieu>Chambre</Lieu>
     </resultat1>
     <resultat1>
           <Description>Four</Description>
           <Prix>60</Prix>
           <Lieu>Cuisine</Lieu>
     </resultat1>
     <resultat1>
           <Description>Lave-Vaisselle</Description>
           <Prix>150</Prix>
           <Lieu>Cuisine</Lieu>
     </resultat1>
     <resultat1>
           <Description>Bibliothèque</Description>
           <Prix>450</Prix>
           <Lieu>Salon</Lieu>
     </resultat1>
Puisque le résultat affiché est "resultat1", alors dans ce bloc de code j'ai mis

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
                <resultat1>
                     <xsl:text>Exemple<xsl:text>
                     <xsl:value-of select="$value"/>
                </resultat1>
Cela ne fonctionne pas. Comment afficher le contenu de la variable "value" ?
Merci de votre aide

André