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] une question sur mon fichier XML [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut [XSLT] une question sur mon fichier XML
    Hello tout le monde!

    Et bien en fait j'ai crééer un fichier XML depuis une application java, et j'aimerais maintenant le transformer en html et pdf.
    voila le type de fichier xml que j'ai:

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE typeQuestionnaire SYSTEM "D:\_Diplome\TD\questionnaire.dtd">
    <typeQuestionnaire>
    	<entete>
    		<nom>le nom</nom>
    		<auteur>l'auteur</auteur>
    		<date>la date de création</date>
    	</entete>
    	<elements>
    		<element>
    			<titre id="1">
    				<nomTitre>le nom du titre, le titre quoi...</nomTitre>
    				<niveau>1</niveau>
    			</titre>
    		</element>
    		<element>
    			<titre id="2">
    				<nomTitre>le nom du titre, le titre quoi...</nomTitre>
    				<niveau>1</niveau>
    			</titre>
    		</element>
    		<element>
    			<question id="3">
    				<type>fermee (unique)</type>
    				<libelle>Etes-vous?</libelle>
    				<analyses>
    					<analyse>Addition</analyse>
    					<analyse>Pour-cent</analyse>
    				</analyses>
    				<format>
    					<nombreModalite>2</nombreModalite>
    					<modalites>
    						<modalite>homme</modalite>
    						<modalite>femme</modalite>
    					</modalites>
    					<nombreReponsePossible>1</nombreReponsePossible>
    					<typeReponsePossible>egal</typeReponsePossible>
    				</format>
    			</question>
    		</element>
    		<element>
    			<question id="4">
    				<type>fermee (multiple)</type>
    				<libelle>Quelles sont pour vous, dans la liste proposée, les trois principaux critères de qualité ?</libelle>
    				<analyses>
    					<analyse>Addition</analyse>
    					<analyse>Pour-cent</analyse>
    				</analyses>
    				<format>
    					<nombreModalite>8</nombreModalite>
    					<modalites>
    						<modalite>Convivialité</modalite>
    						<modalite>Simplicité</modalite>
    						<modalite>Rapidité</modalite>
    						<modalite>Fiabilité</modalite>
    						<modalite>Sécurité</modalite>
    						<modalite>Performance</modalite>
    						<modalite>Qualité</modalite>
    						<modalite>Autre</modalite>
    					</modalites>
    					<nombreReponsePossible>3</nombreReponsePossible>
    					<typeReponsePossible>egal</typeReponsePossible>
    				</format>
    			</question>
    		</element>
    		<element>
    			<question id="5">
    				<type>ouverte (texte)</type>
    				<libelle>Quel est votre nom de jeune fille?</libelle>
    				<analyses>
    					<analyse>Sans analyse</analyse>
    				</analyses>
    				<format>
    					<typeReponse>texte</typeReponse>
    				</format>
    			</question>
    		</element>
    		<element>
    			<question id="6">
    				<type>ouverte (numerique)</type>
    				<libelle>Quel est votre âge ?</libelle>
    				<analyses>
    					<analyse>Sans analyse</analyse>
    				</analyses>
    				<format>
    					<typeReponse>numerique</typeReponse>
    				</format>
    			</question>
    		</element>
    		<element>
    			<question id="7">
    				<type>ouverte (kern)</type>
    				<libelle>Please list here all types of events, besides, customer events...</libelle>
    				<analyses>
    					<analyse>Sans analyse</analyse>
    				</analyses>
    				<format>
    					<nombreDeLignes>5</nombreDeLignes>
    					<entetes>
    						<entete>Name</entete>
    						<entete>Own booth</entete>
    						<entete>Only visiting</entete>
    					</entetes>
    				</format>
    			</question>
    		</element>
    	</elements>
    </typeQuestionnaire>
    Ce fichier représente un questionnaire que je dois maintenant mettre en page. J'aimerais donc créer un tableau (html) ayant autant de ligne qu'il y a d'"element" dans mon xml. Maintenant ma question est de savoir comment faire pour que dans cette ligne je puisse effectuer 2 actions différentes en fonctions de ce que contient l'element (soit titre soit question).

    Ma question est de savoir comment ecrire ca dans mon xsl.

    Je suis complètement débutant dans le domaine alors désolé si la question parait un brin stupide..

    Merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    tu peux faire un truc dans le genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <xsl:template match="//element">
    <xsl:choose>
       <xsl:when test="titre"> tu es dans le cas titre
       </xsl:when>
        <xsl:when test="question">
                  tu es dans le cas question
        </xsl:when>
        <xsl:otherwise>
                 tu es dans le cas ni l'un ni l'autre
        </xsl:otherwise>
    </xsl:choose>
     
    </xsl:template>
    je te conseil de faire un xsl déja et d'essayer de faire quelques chose...pour cela je t'invite à jeter un coup d'oeil rapide sur la faq. http://xml.developpez.com/faq/
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Merci bcp de ta réponse. en effet ca fonctionne. Mais je ne comprends pas pourquoi quand je mets ce code dans un un autre permettant de créer un tableau, ca ne fonctionne pas...

    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"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:template match="/">
    <html>
      <head> 
         <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
      </head>
      <body>
    <xsl:template match="/elements/element">
    <xsl:choose>
       <xsl:when test="titre"> tu es dans le cas titre
       </xsl:when>
        <xsl:when test="question">
                  tu es dans le cas question
        </xsl:when>
        <xsl:otherwise>
                 tu es dans le cas ni l'un ni l'autre
        </xsl:otherwise>
    </xsl:choose>
     </xsl:template>
     </body>
     </html>
    </xsl:template>
    </xsl:stylesheet>
    Je ne suis pas encore au clair avec la notion de template et de match...

    En tout cas c'est pas si évident que ca ces feuilles xsl...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Bon je m'en sort gentillement, j'arrive a faire un tableau...
    Mais je veut maintenant pouvoir avoir la valeur du noeud qui est en dessous de celui que j'utilise pour mon for each...

    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
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/REC-html40" version="1.0">
    	<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
    	<xsl:template match="/">
    		<html>
    			<head>
    				<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
    			</head>
    			<body>
    				<h2>Liste des élèves de la classe </h2>
    				<table border="1">
    					<xsl:for-each select="typeQuestionnaire/elements/element">
    						<tr>
    							<td>
    								<xsl:choose>
    									<xsl:when test="titre">
    										<xsl:apply-templates select="/nomTitre"/>
    									 tu es dans le cas titre
    									 </xsl:when>
    									<xsl:when test="question">
    									<xsl:apply-templates select="question"/>
    									tu es dans le cas question
    									</xsl:when>
    									<xsl:otherwise>
    									tu es dans le cas ni l'un ni l'autre
    									</xsl:otherwise>
    								</xsl:choose>
    							</td>
    						</tr>
    					</xsl:for-each>
    				</table>
    			</body>
    		</html>
    	</xsl:template>
    </xsl:stylesheet>
    Quelqu'un pour me donner un coup de pouce??

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    essaye stp d'être plus precis. peut être que je t'ai repondu dans ton autre post.
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Et bien pour le moment j'ai laissé tomber le xslt... J'ai commandé 2 livres pour avoir des références et bosser un peu dessus parce que la j'ai vraiment aucune idée et je perds du temps pour rien...

    Merci pour les réponses.

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    bonne idée.

    mais tu peux aussi en attendant commencer ici http://xml.developpez.com/faq/
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

Discussions similaires

  1. Une petite question sur le fichier htaccess
    Par namstou3 dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2007, 11h01
  2. Encore une question sur les fichiers midi
    Par m14w dans le forum Delphi
    Réponses: 1
    Dernier message: 07/05/2007, 22h51
  3. [AIX] Une question sur les fichiers
    Par Bahan dans le forum AIX
    Réponses: 1
    Dernier message: 11/04/2007, 08h59
  4. Réponses: 3
    Dernier message: 17/07/2006, 08h29
  5. [XSLT] Appliquer un traitement xslt sur un fichier XML distant
    Par mabig dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/03/2006, 09h38

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