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 :
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
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>
Merci pour votre
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>![]()
Partager