Voici le fichier de départ : SAPinput2.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
21
22
23
24
25
<?xml version="1.0" encoding="UTF-16"?> 
<SAP xsi:noNamespaceSchemaLocation="SAP.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<ficheInformation> 
<fiche> 
<document> 
<NE/> 
</document> 
</fiche> 
<fiche> 
<document> 
<NE/> 
</document> 
</fiche> 
<fiche> 
<document> 
<IM/> 
</document> 
</fiche> 
<fiche> 
<document> 
<DS/> 
</document> 
</fiche> 
</ficheInformation> 
</SAP>
Je veux le transformer en utilisant XSLT pour obtenir en sortie le fichier suivant : SAPoutputModel2.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
<?xml version="1.0" encoding="ISO-8859-1"?> 
<Information> 
<ficheInfo> 
<doc>Interne</doc> 
</ficheInfo> 
<ficheInfo> 
<doc>Interne</doc> 
</ficheInfo> 
<ficheInfo> 
<doc>Externe</doc> 
</ficheInfo> 
<ficheInfo> 
<doc>Interne</doc> 
</ficheInfo> 
</Information>
Voici le fichier de transformation : SAP02.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
23
24
25
26
<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<!--modification de encoding--> 
<xsl:output method="xml" encoding="ISO-8859-1" indent="yes"/> 
<xsl:template match="/SAP"> 
<xsl:for-each select="ficheInformation"> 
<Information> 
<xsl:for-each select="fiche"> 
<ficheInfo> 
<doc> 
<xsl:apply-templates select="document"/> 
</doc> 
</ficheInfo> 
</xsl:for-each> 
</Information> 
</xsl:for-each> 
</xsl:template> 
<xsl:template match="document"> 
<xsl:for-each select="descendant::*"> 
<xsl:copy-of select="local-name()"/> 
<!--c'est là que je devrais opérer la sélection: 
si enfants de <document> = NE ou DS alors renvoyer Interne en sortie 
si enfants de <document> = IM alors renvoyer Externe en sortie--> 
</xsl:for-each> 
</xsl:template> 
</xsl:stylesheet>
Voici ce que SAP02.xsl me retourne en output : SAPoutput02.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
<?xml version="1.0" encoding="ISO-8859-1"?> 
<Information> 
<ficheInfo> 
<doc>NE</doc> 
</ficheInfo> 
<ficheInfo> 
<doc>NE</doc> 
</ficheInfo> 
<ficheInfo> 
<doc>IM</doc> 
</ficheInfo> 
<ficheInfo> 
<doc>DS</doc> 
</ficheInfo> 
</Information>
Je n'arrive pas à faire le changement de valeur en sortie selon la condition commentée dans le fichier SAP02.xsl
Merci de venir à mon aide.