Bonjour,
Voici le fichier xml que je dois customiser

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
<?xml version="1.0"?>
<CfgExpression xsi:schemaLocation="urn:com:das:conf CfgDef.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:com:das:conf">
    <Description>
        <Characteristic Description="desc Equipment" Id="1" Name="Equipment">
            <Characteristic Description="desc Middle equipment" Id="2" Name="Middle"/>
            <Characteristic Description="desc Luxe equipment" Id="3" Name="Luxe"/>
            <Characteristic Description="desc Basic equipment" Id="4" Name="Basic"/>
        </Characteristic>
        <Characteristic IsExclusive="true" Description="desc Engine" Id="5" Name="Engine">
            <Characteristic Description="desc V6 engine" Id="6" Name="V6"/>
            <Characteristic Description="desc V12 engine" Id="7" Name="V12"/>
        </Characteristic>
    </Description>
    <Expression>
        <AND>
            <OR>
                <EffectivityRef Id="2" Name="35827.1"/>
                <EffectivityRef Id="1" Name="35828.1"/>
            </OR>
            <OR>
                <AND>
                    <Characteristic Id="5" Name="Engine">
                        <Characteristic Id="6" Name="V6"/>
                    </Characteristic>
                    <Characteristic Id="1" Name="Equipment">
                        <Characteristic Id="4" Name="Basic"/>
                    </Characteristic>
                </AND>
                <AND>
                    <Characteristic Id="5" Name="Engine">
                        <Characteristic Id="7" Name="V12"/>
                    </Characteristic>
                    <Characteristic Id="1" Name="Equipment">
                        <Characteristic Id="3" Name="Luxe"/>
                    </Characteristic>
                </AND>
            </OR>
        </AND>
    </Expression>
</CfgExpression>

voici le fichier xsl que j'utilise pour l'instant
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
53
54
 
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:cfg="urn:com:das:conf">
    <xsl:output method="text"/>
 
    <!-- template CfgExpression -->
    <xsl:template match="cfg:CfgExpression">
        <xsl:for-each select="cfg:Expression">
            <xsl:apply-templates/>
        </xsl:for-each>
    </xsl:template>
    <!-- template Expression -->
 
    <!-- template Description -->
    <xsl:template name="Description">
            <xsl:apply-templates/>
    </xsl:template>
 
    <!-- template AND -->
    <xsl:template match="cfg:AND">
        <xsl:for-each select="*">
            <xsl:if test="position() != 1">
                <xsl:text> ; </xsl:text>
            </xsl:if>
            <xsl:apply-templates select="."/>
        </xsl:for-each>
    </xsl:template>
 
    <!-- template OR -->
    <xsl:template match="cfg:OR">
        <xsl:for-each select="*">
            <xsl:if test="position() != 1">
                <xsl:text> | </xsl:text>
            </xsl:if>
            <xsl:apply-templates select="."/>
        </xsl:for-each>
    </xsl:template>
 
    <!-- template Caracteristic -->
    <xsl:template match="cfg:Characteristic">
        <xsl:value-of select="@Name"/>
        <xsl:text>,</xsl:text>
        <xsl:value-of select="cfg:Characteristic/@Name"/>
        <xsl:text/>
    </xsl:template>
 
     <!-- template EffectivityRef -->
    <xsl:template match="cfg:EffectivityRef">
        <xsl:text>[</xsl:text>
        <xsl:value-of select="@Name"/>
        <xsl:text>]  </xsl:text>
    </xsl:template>
 
</xsl:stylesheet>
Voila le resultat aujourd'hui

[35827.1] | [35828.1] ; Engine,V6 ; Equipment,Basic | Engine,V12 ; Equipment,Luxe

voila ce que je voudrais avoir

[35827.1] | [35828.1] ; Engine,V6 ; Equipment{Basic} | Engine,V12 ; Equipment{Luxe}

L’affichage “{ }“ or “,” est dependant de la valeur de ”IsExclusive” disponible dans la partie <Description>

avec un autre fichier xsl :

Engine,desc V6 Engine; Equipment{desc Basic equipment} | Engine,desc V12 Engine; Equipment{desc Luxe equipment}


Dans ce cas je voudrais ne pas tenir compte de la balise ”EffectivityRef” et du ”AND” et ”OR” associés juste au-dessus et récupérer la valeur de Description à la place de chaque valeur.

est ce que quelqu'un a une idée ?
Ludovic