Bonjour,

J'ai un xml avec des villes classées par pays. J'utilise xsl pour extraire toutes les villes (et les informations associées) d'un pays particulier et mettre en forme un fichier csv.
Dans mon csv, je retrouve bien ce que je veux, mais j'ai des lignes vides pour les villes qui ne correspondent pas au pays attendu (INN) .

Le xml se présente comme ça :

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
<data center="test">
    <observations date="20100505">
        <station id="48324">
            <name>THOEN</name>
            <source>
                <center>VTBB</center>
            </source>
            <location>
                <latitude unit="DD">17.63334</latitude>
                <longitude unit="DD">99.25</longitude>
                <elevation unit="m">192</elevation>
                <country>TH</country>
            </location>
       </station>
       <station id="48624">
            <name>DELHI</name>
            <source>
                <center>VTBB</center>
            </source>
            <location>
                <latitude unit="DD">100.6</latitude>
                <longitude unit="DD">99.25</longitude>
                <elevation unit="m">200</elevation>
                <country>INN</country>
            </location>
         </station>
         </station>
         ....
         </station>
       </observations>
</data>
Et voici la feuille de style :
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
 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" encoding="iso-8859-1"/>
 
  <xsl:param name="delim" select="string(';')" />
 
  <xsl:template match="/">
    <xsl:text>Id;Name-EN;Lat;Lon;</xsl:text>
    <xsl:apply-templates select="/data/observations" />
  </xsl:template>
  <xsl:template match="station">
 
	<xsl:choose>
        <xsl:when test="country='INN'" > 
			<xsl:value-of select="@id" />
			<xsl:value-of select="$delim" />
			<xsl:value-of select="name" />
			<xsl:value-of select="$delim" />
			<xsl:value-of select="location/latitude" />
			<xsl:value-of select="$delim" />
			<xsl:value-of select="location/longitude" />
			<xsl:value-of select="$delim" />
		</xsl:when> 
	</xsl:choose>  
  </xsl:template>
</xsl:stylesheet>
Merci pour votre