Bonjour,

C'est la première fois que j'essaye d'écrire un xsl donc je galère...
J'aimerai avoir un exemple pour mieux comprendre le xls :
Voici le genre de transformation que j'aimerai executer : xml --> xml.

Voici le xml d'origine :
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"?>
<row id="1">
	<data id="1">John</data>
	<data id="2">Freeman</data>
	<data id="3">France</data>
	<data id="4">2</data>
</row>
<row id="2">
	<data id="1">Marc</data>
	<data id="2">Kerry</data>
	<data id="3">USA</data>
	<data id="4">0</data>
</row>
...
Voici comment j'aimerai le formatter le xml après passage du xsl

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<Personne id = "1">
	<Nom>John Freeman</Nom>
	<Pays>France></Pays>
</Personne>
<Personne id = "2">
	<Nom>Marc Kerry</Nom>
	<Pays>USA></Pays>
	<enfant>2</enfant>
</Personne>
Vous remarquerez que le tag <enfant> n'est rempli que si la valeur <data id="4"> est + grand que 0

Voici un gabarit de mon xsl mais je n'arrive pas à aller plus loin :

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:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output 
  method="xml"
  encoding="ISO-8859-1"
  indent="yes" />
 
<xsl:template match="row">
	<xsl:apply-templates select="data" />
</xsl:template>
 
<xsl:template match="data">
 
	<xsl:if test="@id = 1">
	<Nom>
    <xsl:value-of select="." />
	</Nom>
	</xsl:if>
 
</xsl:template>
 
</xsl:stylesheet>
Pouvez-vous m'aider ?

Merci d'avance