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 :

[XSLT] [XML->HTML] transformation XML -> HTML via XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [XSLT] [XML->HTML] transformation XML -> HTML via XSL
    Bonjour,

    Je dispose d'un fichier XML recupere d'une base de donnees.
    L'architecture est la suivante:

    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
     
    <?xml version="1.0" encoding="iso-8859-2" ?>
    <racine>
    <classe>Poisson
        <detail>(selon arrivage)</detail>  
        <plat>Requin</plat>
        <detail>(seulement en hiver)</detail>
        <prix>16</prix>
        <plat>Saumon</plat>
        <prix>16</prix>
        <plat>Thon</plat>
        <prix>16</prix>
        <plat>Espadon</plat>
        <prix>18</prix>
        <plat>Sole</plat>
        <prix>18</prix>
    </classe>
    <classe>Boissons
        <plat>Coca-Cola </plat>
        <prix>2</prix>
        <plat>Jus de fruits</plat>
        <prix>2</prix>
        <plat>Vittel</plat>
        <prix>3</prix>
    </classe>
    </racine>
    Autrement dit, il y a plusieurs classes de produits et dans chaque categorie plusieurs plats, plusieurs prix et de 0 a n details.

    Je voudrais obtenir un truc tres simple, juste remplacer les "classe" par des h1, les "plats" par des "h2" et les prix par des "h3"...
    Je sais ca a l'air simple, mais j'ai eu beau essayer de multiples solutions, je n'y arrive pas, et moi mon truc c'est Java, pas XSL 8)
    La solution alternative que j'ai trouvee est de faire un parseur, mais je trouve ca lourd de reprogrammer XSL

    Est ce que quelqu'un pourrait m'aider?
    Merci

    May the Force be with you

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    si ton truc c'est le java, utilise l'XSL qui est dans le jdk
    http://java.sun.com/xml/jaxp/index.jsp

    un petit exemple de transformation XSL qui se fait en quelques lignes de java :
    http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT6.html#wp64930

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je te remercie de ta reponse, mais en l'occurence je dois generer du HTML uniquement avec le fichier XML et la feuille de style XSL

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    allez zou :

    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
     
    <xsl:template match="racine">
        <xsl:apply-templates select="*" />
    </xsl:template>
    <xsl:template match="*">
      <xsl:choose>
        <xsl:when test="name() = 'classe'">
          <H1><xsl:value-of select="text()" /></H1>
        </xsl:when>
        <xsl:when test="name() = 'detail'">
          <H2><xsl:value-of select="text()" /></H2>
        </xsl:when>
        <xsl:when test="name() = 'prix'">
          <H3><xsl:value-of select="text()" /></H3>
        </xsl:when>
      </xsl:choose>
      <xsl:apply-templates select="*" />
    </xsl:template>
    C'est pas le top, je pense qu'il faudrait mieux une template qui match sur chacun des noeuds specifiquement, mais bon.

    Par ailleurs, si tu peux, reprend un peu ta grammaire XML, c'est pas le plus simple à transformer. Par exemple :

    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="iso-8859-2"?>
    <racine>
    	<classes>
    		<classe>
    			<nom>Poisson</nom>
    			<detail>(selon arrivage)</detail>
    			<plats>
    				<plat>
    					<nom>Requin</nom>
    					<detail>(seulement en hiver)</detail>
    					<prix>16</prix>
    				</plat>
    				<plat>
    					<nom>Saumon</nom>
    					<prix>16</prix>
    				</plat>
    				<plat>
    					<nom>Thon</nom>
    					<prix>16</prix>
    				</plat>
    				<plat>
    					<nom>Espadon</nom>
    					<prix>18</prix>
    				</plat>
    				<plat>
    					<nom>Sole</nom>
    					<prix>18</prix>
    				</plat>
    			</plats>
    		</classe>
    		<classe>
    			<nom>Boissons</nom>
    			<plat>
    				<nom>Coca-Cola </nom>
    				<prix>2</prix>
    			</plat>
    			<plat>
    				<nom>Jus de fruits</nom>
    				<prix>2</prix>
    			</plat>
    			<plat>
    				<nom>Vittel</nom>
    				<prix>3</prix>
    			</plat>
    		</classe>
    	</classes>
    </racine>
    C'est un poil plus verbeux, mais ca sera 'achment plus simple à transformer et à manipuler.
    Nicolas

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci!!!

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

Discussions similaires

  1. Transformation jsp en html et php en html
    Par makao dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 21/12/2010, 21h28
  2. Réponses: 2
    Dernier message: 18/02/2009, 09h39
  3. [XSLT] transfo d'un fichier XML en plusieurs fichiers XML
    Par doudou_rennes dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 28/11/2006, 12h01
  4. Réponses: 2
    Dernier message: 06/07/2006, 08h47
  5. [XSLT] processeur pour une transformation XML vers XML
    Par fanette dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 15/06/2006, 12h46

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