Voici le fichier de départ : SAPinput2.xml
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
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>
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 <?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 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
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>
Je n'arrive pas à faire le changement de valeur en sortie selon la condition commentée dans le fichier 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 <?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>
Merci de venir à mon aide.
Partager