Bonjour,
J'ai un projet de langage Web à rendre dans quelques jours, et je coince sur un petit bout de code, si quelqu'un pourrait me débloquer sa serait vraiment sympa !
Alors voila mon problème :
Pour commencer voici la structure du fichier XML :
Je dois le transformer en XML / KML pour faire une géolocalisation, donc au format suivant :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="transformation.xsl"?> ns1:annuaire xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ns1='http://ProjetLW.FLRRT' xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:dc="http://purl.org/dc/elements/1.1/" xsi:schemaLocation="http://ProjetLW.FLRRT ../xsd/projet.xsd"> <rdf:RDF> <rdf:Description> <dc:creator>...</dc:creator> <dc:subject>Langages pour le Web</dc:subject> <dc:description>Projet de LW</dc:description> <dc:title>Projet</dc:title> <dc:date>19 october 2011</dc:date> </rdf:Description> </rdf:RDF> <ns1:contact> <ns1:nom></ns1:nom> <ns1:prénom></ns1:prénom> <ns1:adresseLocale> <ns1:pays></ns1:pays> <ns1:ville></ns1:ville> <ns1:codePostal></ns1:codePostal> <ns1:rue></ns1:rue> <ns1:numéro></ns1:numéro> <ns1:numEtage></ns1:numEtage> <ns1:boitePostale></ns1:boitePostale> <geo:lat></geo:lat> <geo:long></geo:long> </ns1:adresseLocale> <ns1:adresseGénérale> <ns1:pays></ns1:pays> <ns1:ville></ns1:ville> <ns1:codePostal></ns1:codePostal> <ns1:rue></ns1:rue> <ns1:numéro></ns1:numéro> <ns1:numEtage></ns1:numEtage> <ns1:boitePostale></ns1:boitePostale> <geo:lat></geo:lat> <geo:long></geo:long> </ns1:adresseGénérale> <ns1:numTel></ns1:numTel> <ns1:siteWeb></ns1:siteWeb> <ns1:email></ns1:email> </ns1:contact> ...
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 <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> <name></name> <description></description> <Placemark> <name></name> <description><![CDATA[ <dl> <dt>Adresse : </dt> <dd>Laboratoire</dd> <dd>Faculté de Médecine</dd> <dd>38706 La Tronche</dd> <dd>France</dd> </dl> ]]> </description> <Point> <coordinates>5.748955,45.198954</coordinates> </Point> </Placemark> </Document> </kml>
Et voici mon code XSLT :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://ProjetLW.FLRRT" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <xsl:output method="xml" indent="yes"/> <xsl:template match="ns1:annuaire"> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> <name>Géolocalisation</name> <description>Projet 2011</description> <xsl:for-each select="ns1:contact"> <xsl:apply-templates select="."/> </xsl:for-each> </Document> </kml> </xsl:template> <xsl:template match="ns1:contact"> <Placemark> <name><xsl:value-of select="ns1:nom"/>*<xsl:value-of select="ns1:prénom"/></name> <description> <dl> <dt>Adresse : </dt> <dd><xsl:value-of select="ns1:nom"/> <xsl:value-of select="ns1:prénom"/></dd> <xsl:apply-templates select="ns1:adresseLocale"/> </dl> </description> <Point> <coordinates> <xsl:apply-templates select="geo:lat"/>, <xsl:apply-templates select="geo:long"/> </coordinates> </Point> </Placemark> </xsl:template> <xsl:template match="ns1:adresseLocale"> <dd> <xsl:value-of select="ns1:rue"/>*<xsl:value-of select="ns1:codePostal"/> </dd> <dd> <xsl:value-of select="ns1:codePostal"/>* <xsl:value-of select="ns1:ville"/>*<xsl:value-of select="ns1:pays"/>* </dd> </xsl:template> <xsl:template match="geo:lat"> <xsl:value-of select="."> </xsl:template> <xsl:template match="geo:long"> <xsl:value-of select="."> </xsl:template> </xsl:stylesheet>
Je sais que j'ai une erreur pour la récupération des coordonnées GPS... Mais je bloque, je vois pas comment je pourrais faire autrement.
Bref, si quelqu'un pourrait me mettre sur la piste sa serait vraiment cool :-)
Merci d'avance !
Florent
Partager