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 :

groupe et tableau retour ligne [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Par défaut groupe et tableau retour ligne
    Bonjour,
    actuellement mon résultat à comme rendu:
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML//EN" "http://www.w3.org/TR/2001/REC-xhtml11-20010531">
    <table border="1">
    <tbody>
    <tr>
    <td>Mr</td>
    <td>John</td>
    <td>Nom1</td>
    <td>Bulgarie</td>
    <td>alban</td>
    <td>Nom4</td>
    <td>Bulgarie</td>
    <td>hihihi</td>
    <td>Nom5</td>
    <td>Bulgarie</td>
    <td>llllllll</td>
    <td>Nom6</td>
    <td>Bulgarie</td>
    <td>kjoh</td>
    <td>Nom7</td>
    <td>Bulgarie</td>
    <td>pipzzz</td>
    <td>Nom9</td>
    <td>Bulgarie</td>
    </tr>
    <tr>
    <td>Dr</td>
    <td>Amy</td>
    <td>Nom2</td>
    <td>Bulgarie</td>
    <td>testa</td>
    <td>Nom3</td>
    <td>Bulgarie</td>
    <td>tusto</td>
    <td>Nom5</td>
    <td>Bulgarie</td>
    <td>rir</td>
    <td>Nom8</td>
    <td>Bulgarie</td>
    </tr>
    </tbody>
    </table>
    je voudrais cela comme rendu final:
    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
     
     
    <html>
    <table border="1">
    <tbody>
    <tr><td>Mr</td><td>John</td><td>Nom1</td><td>Bulgarie</td></tr>
    <tr><td> </td><td>alban</td><td>Nom4</td><td>Bulgarie</td></tr>
    <tr><td> </td><td>hihihi</td><td>Nom5</td><td>Bulgarie</td></tr>
    <tr><td> </td><td>llllllll</td><td>Nom6</td><td>Bulgarie</td></tr>
    <tr><td> </td><td>kjoh</td><td>Nom7</td><td>Bulgarie</td></tr>
    <tr><td> </td><td>pipzzz</td><td>Nom9</td><td>Bulgarie</td></tr>
     
    <tr><td>Dr</td><td>Amy</td><td>Nom2</td><td>Bulgarie</td></tr>
    <tr><td> </td><td>testa</td><td>Nom3</td><td>Bulgarie</td></tr>
    <tr><td> </td><td>tusto</td><td>Nom5</td><td>Bulgarie</td></tr>
    <tr><td> </td><td>rir</td><td>Nom8</td><td>Bulgarie</td></tr>
    </tbody>
    </table>
    </html>
    voiçi mon 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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <?xml-stylesheet type='text/xsl' href='test.xsl'?>
    <records>
    	<contact >
    		<title>Mr</title>
    		<forename>John</forename>
    		<surname>Nom1</surname>
    		<pays>Bulgarie</pays>
    	</contact>
    	<contact>
    		<title>Dr</title>
    		<forename>Amy</forename>
    		<surname>Nom2</surname>
    		<pays>Bulgarie</pays>
    	</contact>
     
    		<contact>
    		<title>Dr</title>
    		<forename>testa</forename>
    		<surname>Nom3</surname>
    		<pays>Bulgarie</pays>
    	</contact>
     
     
    		<contact>
    		<title>Mr</title>
    		<forename>alban</forename>
    		<surname>Nom4</surname>
    		<pays>Bulgarie</pays>
    	</contact>
     
    			<contact >
    		<title>Dr</title>
    		<forename>tusto</forename>
    		<surname>Nom5</surname>
    		<pays>Bulgarie</pays>
    	</contact>
     
    			<contact>
    		<title>Mr</title>
    		<forename>hihihi</forename>
    		<surname>Nom5</surname>
    		<pays>Bulgarie</pays>
    	</contact>
     
     
    			<contact>
    		<title>Mr</title>
    		<forename>llllllll</forename>
    		<surname>Nom6</surname>
    		<pays>Bulgarie</pays>
    	</contact>
     
     
    			<contact>
    		<title>Mr</title>
    		<forename>kjoh</forename>
    		<surname>Nom7</surname>
    		<pays>Bulgarie</pays>
    	</contact>
     
     
    			<contact>
    		<title>Dr</title>
    		<forename>rir</forename>
    		<surname>Nom8</surname>
    		<pays>Bulgarie</pays>
    	</contact>
     
     
    			<contact>
    		<title>Mr</title>
    		<forename>pipzzz</forename>
    		<surname>Nom9</surname>
    		<pays>Bulgarie</pays>
    	</contact>
     
     
    </records>

    Voiçi mon XSL:

    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
     
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    	<xsl:output
      method="html"
      encoding="ISO-8859-1"
      doctype-public="-//W3C//DTD XHTML//EN"
      doctype-system="http://www.w3.org/TR/2001/REC-xhtml11-20010531"
      indent="yes" />
     
    <xsl:key name="contacts-by-surname" match="contact" use="title" />
    <xsl:template match="records">
    <table border="1">
     
    	<xsl:for-each select="contact[count(. | key('contacts-by-surname', title)[1]) = 1]">
    		<tr>
     
    		<td><xsl:value-of select="title" /></td>
    		<xsl:for-each select="key('contacts-by-surname', title)">
     
    			<td><xsl:value-of select="forename" /></td>
    			<td><xsl:value-of select="surname" /></td>
    			<td><xsl:value-of select="pays" /></td>
    		</xsl:for-each>
    		</tr>
    	</xsl:for-each>
     
    </table>
    </xsl:template>
    </xsl:stylesheet>
    d'avance merci.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Par défaut
    j'ai partiellement résolu mon problème en html grace à mon précédent post maintenant est-ce que c'est possible de commencer la boucle à la 2 ème itération ?:


    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
     
     
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    	<xsl:output
      method="html"
      encoding="ISO-8859-1"
      doctype-public="-//W3C//DTD XHTML//EN"
      doctype-system="http://www.w3.org/TR/2001/REC-xhtml11-20010531"
      indent="yes" />
     
    <xsl:key name="contacts-by-surname" match="contact" use="title" />
    <xsl:template match="records">
    <table border="1">
     
    	<xsl:for-each select="contact[count(. | key('contacts-by-surname', title)[1]) = 1]">
     
    		<tr><td><xsl:value-of select="title" /></td><td><xsl:value-of select="forename" /></td><td><xsl:value-of select="surname" /></td><td><xsl:value-of select="pays" /></td></tr>
    		<xsl:for-each select="key('contacts-by-surname', title)">
     
    			<tr>
    			<td></td><td><xsl:value-of select="forename" /></td>
    			<td><xsl:value-of select="surname" /></td>
    			<td><xsl:value-of select="pays" /></td>
    			</tr>
    		</xsl:for-each>
    	</xsl:for-each>
     
    </table>
    </xsl:template>
    </xsl:stylesheet>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Par défaut
    je viens de résoudre mon problème
    grâce à la fonction [position() &gt; 1]:

    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
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    	<xsl:output
      method="html"
      encoding="ISO-8859-1"
      doctype-public="-//W3C//DTD XHTML//EN"
      doctype-system="http://www.w3.org/TR/2001/REC-xhtml11-20010531"
      indent="yes" />
     
    <xsl:key name="contacts-by-surname" match="contact" use="title" />
    <xsl:template match="records">
    <table border="1">
     
    	<xsl:for-each select="contact[count(. | key('contacts-by-surname', title)[1]) = 1]">
     
    		<tr><td><xsl:value-of select="title" /></td><td><xsl:value-of select="forename" /></td><td><xsl:value-of select="surname" /></td><td><xsl:value-of select="pays" /></td></tr>
    		<xsl:for-each select="key('contacts-by-surname', title)[position() &gt; 1]">
     
    			<tr>
    			<td></td><td><xsl:value-of select="forename" /></td>
    			<td><xsl:value-of select="surname" /></td>
    			<td><xsl:value-of select="pays" /></td>
    			</tr>
    		</xsl:for-each>
    	</xsl:for-each>
     
    </table>
    </xsl:template>
    </xsl:stylesheet>
    Merci pour mon aide ça pourrait servir à d'autres

  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
    J'en doute, après tout on a déjà des tonnes de ressources sur les méthodes de regroupement et sur l'utilisation de position().

    Mais ça fait plaisir de voir des gens qui s'en sortent tout seuls rien qu'en prenant la peine de poser la question
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Parcours de tableau et retour ligne
    Par ppbdx dans le forum Langage
    Réponses: 5
    Dernier message: 21/06/2013, 17h33
  2. [MySQL] Retour ligne tableau PHP HTML
    Par iMax92 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/03/2013, 16h06
  3. [Vxi3] Tableau retour à la ligne
    Par samy37 dans le forum Webi
    Réponses: 3
    Dernier message: 14/09/2012, 11h57
  4. [2K5] Tableau - retour à la ligne
    Par rudbyman52 dans le forum SSRS
    Réponses: 2
    Dernier message: 21/04/2010, 13h13
  5. [Writer] Retour ligne
    Par Mister Nono dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 23/01/2004, 15h23

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