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
Voila le resultat aujourd'hui
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>
[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
Partager