IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Transformer un fichier XML a HTML


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    informatique
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Par défaut Transformer un fichier XML a HTML
    Bonjour à tous,

    J'aurai besoin d'un coup de main pour résoudre un petit problème que j'ai, je voudrais transformer un fichier XML à un fichier HTML on utilisant XSLT:

    le fichier 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
    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
    <voitures>
    <garage  link="http://www.renault.fr">Concession Renault
    <voiture id="v1">
    <marque>RENAULT </marque>
    <modele>Twingo </modele>
    <type taille="petite ">Berline</type>
    <prix>5000</prix>
    <km>10000</km>
    </voiture>
    <voiture id="v3">
    <marque>RENAULT </marque>
    <modele>Koleos </modele>
    <type>4x4</type>
    <prix>15000</prix>
    <km>70000</km>
    </voiture>
    <voiture id="v4">
    <marque>RENAULT </marque>
    <modele>Clio</modele>
    <type>Berline</type>
    <prix>3500</prix>
    <km>70000</km>
    </voiture>
    </garage>
    <garage  link="http://www.porsche.fr">Concession Porsche
    <voiture id="v2">
    <marque>PORSCHE </marque>
    <modele>Cayenne</modele>
    <type taille="grande ">4x4</type>
    <prix>65000</prix>
    <km>0</km>
    </voiture>
    <voiture id="v7">
    <marque>PORSCHE </marque>
    <modele>Boxster</modele>
    <type taille="moyenne ">Roadster</type>
    <prix>75000</prix>
    <km>0</km>
    </voiture>
    </garage>
    <garage  link="http://www.citroen.fr">Concession Citroen
    <voiture id="v5">
    <marque>CITROEN </marque>
    <modele>C-Crosser</modele>
    <type  taille="grande ">4x4</type>
    <prix>35000</prix>
    <km>0</km>
    </voiture>
    <voiture id="v6">
    <marque>CITROEN </marque>
    <modele>C5</modele>
    <type  taille="grande ">Berline</type>
    <prix>25000</prix>
    <km>0</km>
    </voiture>
    </garage>
    </voitures>
    le fichier HTML attendu:

    Nom : Sans_titre.png
Affichages : 920
Taille : 71,6 Ko


    Je vous remercie par avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    Pas de problème, dis-nous dès que tu as un soucis. Et n'oublie pas de montrer le code que tu as essayé et d'expliquer ce que tu espérais que ça ferait.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    informatique
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Par défaut
    Voila ce que j'ai fait jusqu'à maintenant

    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
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="html" encoding="ISO-8859-1" />
     
    	<xsl:template match="/">
    		<xsl:apply-templates select="//voiture" />
    		<hr />
    		<xsl:apply-templates select="//garage" />
     
    	</xsl:template>
     
    	<xsl:template match="voiture">
    		<xsl:value-of select="position()" />)
    		<xsl:apply-templates select="type[not(@taille)]" />
    		<xsl:apply-templates select="type[@taille]" />
    		-
    		<xsl:value-of select="prix" />
    		euros
    		(<a href="#{@id}">infos</a>)
    		<br />
    	</xsl:template>
     
    	<xsl:template match="type[@taille]">
    		<xsl:value-of select="preceding-sibling::marque" />
    		<xsl:value-of select="preceding-sibling::modele" />
    	</xsl:template>	
     
    	<xsl:template match="type[not(@taille)]">
    		<b>
    			<xsl:value-of select="preceding-sibling::marque" />
    			<xsl:value-of select="preceding-sibling::modele" />
    		</b>
    	</xsl:template>
     
    	<xsl:template match="garage">
    		<p>
    			<a href="{@link}"><xsl:value-of select="text()" /></a>
    			(<xsl:value-of select="count(voiture)" /> voitures)
    		</p>
    		<xsl:value-of select="position()" />/<xsl:value-of select="count(voiture)" />)
    		<xsl:value-of select="voiture/marque" />
    		<xsl:value-of select="voiture/modele" />
    	</xsl:template>
    </xsl:stylesheet>
    j'ai testé et ca donne


    1) RENAULT Twingo - 5000 euros (infos)
    2) RENAULT Koleos - 15000 euros (infos)
    3) RENAULT Clio - 3500 euros (infos)
    4) PORSCHE Cayenne - 65000 euros (infos)
    5) PORSCHE Boxster - 75000 euros (infos)
    6) CITROEN C-Crosser - 35000 euros (infos)
    7) CITROEN C5 - 25000 euros (infos)

    Concession Renault (3 voitures)
    1/3) RENAULT Twingo

    Concession Porsche (2 voitures)
    2/2) PORSCHE Cayenne

    Concession Citroen (2 voitures)
    3/2) CITROEN C-Crosser

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ah ben, c'est pas mal pour un début.

    J'en conclus que le problème c'est pour la liste des voitures de chaque garage : on ne voit qu'une seule voiture au lieu de la liste complète.

    Eh ben, euh, oui, c'est parce que tu ne fais rien pour créer une liste de voiture, tu fais juste une seule fois <xsl:value-of> pour une voiture, alors qu'il faut le faire pour toutes les voitures.
    Tu pourrais essayer de mettre ça dans un

    <xsl:for-each select="voiture"> par exemple, histoire de faire une boucle sur toutes les voitures.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    informatique
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Par défaut
    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
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="html" encoding="ISO-8859-1" />
     
    	<xsl:template match="/">
    		<xsl:apply-templates select="//voiture" />
    		<hr />
    		<xsl:apply-templates select="//garage" />
     
    	</xsl:template>
     
    	<xsl:template match="voiture">
    		<xsl:value-of select="position()" />)
    		<xsl:apply-templates select="type[not(@taille)]" />
    		<xsl:apply-templates select="type[@taille]" />
    		-
    		<xsl:value-of select="prix" />
    		euros
    		(<a href="#{@id}">infos</a>)
    		<br />
    	</xsl:template>
     
    	<xsl:template match="type[@taille]">
    		<xsl:value-of select="preceding-sibling::marque" />
    		<xsl:value-of select="preceding-sibling::modele" />
    	</xsl:template>	
     
    	<xsl:template match="type[not(@taille)]">
    		<b>
    			<xsl:value-of select="preceding-sibling::marque" />
    			<xsl:value-of select="preceding-sibling::modele" />
    		</b>
    	</xsl:template>
     
    	<xsl:template match="garage">
     
    <p>
    			<a href="{@link}"><xsl:value-of select="text()" /></a>
    			(<xsl:value-of select="count(voiture)" /> voitures)
    		</p>
    <xsl:for-each select="voiture">	
    		<xsl:value-of select="position()" />/<xsl:value-of select="count(../voiture)" />)
     
    		<xsl:value-of select="marque" />
    		<xsl:value-of select="modele" />
    (<xsl:value-of select="type/@taille" />
    <xsl:value-of select="type" />)
    <xsl:value-of select="km" /> :
    <xsl:value-of select="prix" /> euros
    <br/>
    </xsl:for-each>
    	</xsl:template>
    </xsl:stylesheet>
    Résolu Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transformer un fichier XML en HTML
    Par Larka dans le forum Débuter
    Réponses: 3
    Dernier message: 25/02/2016, 14h54
  2. [XSL] Transformation d'un tableau (fichier xml vers html)
    Par Bananou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/04/2010, 12h03
  3. [DOM] Transformer un fichier un fichier XML en HTML avec XLS
    Par saranave dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 31/10/2007, 11h50
  4. Réponses: 2
    Dernier message: 03/04/2007, 14h14
  5. [XSL] comment transformer ce fichier xml en une table html ?
    Par jlassira dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 15/03/2006, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo