Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer un tableau en XSL remplissable case par case

    18 mai 2018 à 8:42:33

    Bonjour,

    Dans le cadre de mon stage, j'ai créer un XML ayant pour format :

    <Racine>
    	<EnTete>
    		<Param1>En-tête numéro 1</Param1>
    		<Param2>En-tête numéro 2</Param2>
    		<Param3>En-tête numéro 3</Param3>
    		<Param4>En-tête numéro 4</Param4>
    	</EnTete>
    	<Mesures>
    		<Mesure>
    			<Voie1>1</Voie1>
    			<Voie2>2</Voie2>
    			<Voie3>3</Voie3>
    		</Mesure>
    		<Mesure>
    			<Voie1>4</Voie1>
    			<Voie2>5</Voie2>
    			<Voie3>6</Voie3>
    		</Mesure>
    	</Mesures>
    </Racine>
    
    



    Voici mon problème:

    En XSL je sais faire un tableau des Mesure, mais j'aimerais en fait avoir 2 tableau, l'un pour l'en-tête et l'autre pour les mesures, hors pour faire le tableau des mesures on utilise un for-each, mais comment faire pour avoir un tableau d'en-tête ayant pour format :


    *************

    Param1|Param2

    Param3|Param4

    *************

    Merci d'avance :)

    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2018 à 8:59:16

      Bonjour,

      Il faut te pencher sur les boucles for-each de XSL.

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        18 mai 2018 à 9:24:16

        C'est la qu'est mon problème, comment utilisé un xsl:for-each quand le param n'apparait qu'un fois, le for-each sert à récupérer une balise qui apparait plusieurs fois, mais mon en-tête n'apparait qu'une seule fois. Donc comment la fonction for-each peut-elle être utile ici? et surtout, comment faire pour choisir la ligne et la colonne où je met ma donnée?
        • Partager sur Facebook
        • Partager sur Twitter
          18 mai 2018 à 10:06:44

          Avec l'attribut select du for-each ...

          Quel ton XSL actuel ?

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            18 mai 2018 à 10:14:10

            Mon XSL actuel est le suivant :

            <?xml version="1.0" encoding="utf-8"?>
            <!DOCTYPE xlks:stylesheet	[
            	<!ENTITY nbsp	"&#160;">
            	<!ENTITY copy	"&#160;">
            	<!ENTITY reg	"&#160;">
            	<!ENTITY trade	"&#160;">
            	<!ENTITY mdash	"&#160;">
            	<!ENTITY ldquo	"&#160;">
            	<!ENTITY rdquo	"&#160;">
            	<!ENTITY pound	"&#160;">
            	<!ENTITY yen	"&#160;">
            	<!ENTITY euro	"&#160;">
            	
            ]>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3c.org/1999/XSL/Transform">
            <xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3c.or/TR/xhtml11/DTD/xhtml11-transitinal.dtd"/>
            <xsl:template match="/">
            
            <html xmlns="http://www.w3c.org/1999/xhtml">
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
            <title>Un Fameux titre WHOAW</title>
            </head>
            
            <body>
            <table width="1000" border="1" cellspacing="0" cellpadding="0">
            	<tr>
            		<th scope="col">NumSerial</th>
            		<th scope="col">Voie1</th>
            		<th scope="col">Voie2</th>
            	</tr>
            	
            	<xsl:for-each select="Carton/InfosPiece/InfoPiece">
            		
            		<tr>
            			<td><xsl:value-of select="NumSerial"/></td>
            			<td><xsl:value-of select="Voie1"/></td>
            			<td><xsl:value-of select="Voie2"/></td>
            		</tr>
            	</xsl:for-each>
            	
            </table>
            </body>
            </html>
            </xsl:template>
            </xsl:stylesheet>
            



            • Partager sur Facebook
            • Partager sur Twitter
              18 mai 2018 à 10:47:14

              Déjà, tu ne fais pas de for-each dans ton entête puisque les th sont en dur ...

              Et ton XML du coup ?

              -
              Edité par Benzouye 18 mai 2018 à 10:47:25

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                18 mai 2018 à 10:50:50

                Mon XML est le suivant :

                <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
                <?xml-stylesheet href="LeNomQueJeVeux.xsl" type="text/xsl"?>
                
                
                <Carton   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                
                        xsi:noNamespaceSchemaLocation="on test.xsd">
                	
                	<Infos>
                		
                		<article>337-174-001-0</article>
                		
                		<numMontage>8-28-1-003-632-1</numMontage>
                		
                		<typeProd>Distu</typeProd>
                		
                		<designation>3650134</designation>
                		
                		<numExemplaire>1</numExemplaire>
                		
                		<refFamille>J29783B</refFamille>
                		
                		<numProg>DBP1 CFM56-5C</numProg>
                		
                		<Etape>AV BR CHEMISE</Etape>
                		
                		<dateLancement>12/12/2012</dateLancement>
                		
                		<OF>121212</OF>
                		
                		<SNEtalon>01</SNEtalon>
                		
                		<dateClotureOF>26/03/2014</dateClotureOF>
                		
                		<codeBanc>23151</codeBanc>
                		
                		<moteur>CFM56-5C</moteur>
                		
                		<operateur>OP1</operateur>
                		
                		<filer></filer>
                	
                	</Infos>
                	
                	<InfoOF>
                		
                		<nombre_pieces_of>3</nombre_pieces_of>
                		
                		<moyenne>
                			
                			<Voie1>0,200133</Voie1>
                			
                			<Voie2>0,202000</Voie2>
                			
                			<Voie3>0,201967</Voie3>
                			
                			<Voie4>0,203087</Voie4>
                		
                		</moyenne>
                		
                		<Ecart_type>
                			
                			<Voie1>0,001858</Voie1>
                			
                			<Voie2>0,008185</Voie2>
                			
                			<Voie3>0,010060</Voie3>
                			
                			<Voie4>0,008553</Voie4>
                		
                		</Ecart_type>
                		
                		<Cpk>
                			
                			<Voie1>1,279535</Voie1>
                			
                			<Voie2>0,366508</Voie2>
                			
                			<Voie3>0,297092</Voie3>
                			
                			<Voie4>0,386358</Voie4>
                		
                		</Cpk>
                		
                		<LIC>
                			
                			<Voie1>0,193</Voie1>
                			
                			<Voie2>0,193</Voie2>
                			
                			<Voie3>0,193</Voie3>
                			
                			<Voie4>0,193</Voie4>
                		
                		</LIC>
                		
                		<LSC>
                			
                			<Voie1>0,213</Voie1>
                			
                			<Voie2>0,213</Voie2>
                			
                			<Voie3>0,213</Voie3>
                			
                			<Voie4>0,213</Voie4>
                		
                		</LSC>
                	
                	</InfoOF>
                	
                	<InfosPiece>
                		
                		<InfoPiece>
                			
                			<NumSerial>fdsdfh</NumSerial>
                			
                			<Face>Intra</Face>
                			
                			<Reprise></Reprise>
                			
                			<Date>24/03/2014</Date>
                			
                			<heure>11:50:03</heure>
                			
                			<Voie1>0,2014</Voie1>
                			
                			<Voie2>0,2</Voie2>
                			
                			<Voie3>0,2129</Voie3>
                			
                			<Voie4>0,1954</Voie4>
                		
                		</InfoPiece>
                		
                		<InfoPiece>
                			
                			<NumSerial>fgfgh</NumSerial>
                			
                			<Face>Intra</Face>
                			
                			<Reprise></Reprise>
                			
                			<Date>24/03/2015</Date>
                			
                			<heure>11:50:22</heure>
                			
                			<Voie1>0,201</Voie1>
                			
                			<Voie2>0,195</Voie2>
                			
                			<Voie3>0,1999</Voie3>
                			
                			<Voie4>0,20156</Voie4>
                		
                		</InfoPiece>
                		
                		<InfoPiece>
                			
                			<NumSerial>ghdf</NumSerial>
                			
                			<Face>Intra</Face>
                			
                			<Reprise></Reprise>
                			
                			<Date>24/03/2016</Date>
                			
                			<heure>11:56:00</heure>
                			
                			<Voie1>0,198</Voie1>
                			
                			<Voie2>0,211</Voie2>
                			
                			<Voie3>0,1931</Voie3>
                			
                			<Voie4>0,2123</Voie4>
                		
                		</InfoPiece>
                	
                	</InfosPiece>
                
                </Carton>
                

                Mais en fait, je n'ai pas les données de l'en-tête dans mon XSL. Ce que j'appelle l'en-tête est la balise Infos dans mon XML, et pour l'instant je n'affiche qu'une partie de ma balise InfosPiece. Mon but est de faire 3 tableau différents, 1 pour la balise Infos, 1 pour la balise InfoOF et 1 pour la balise InfosPiece. Le tableau de la balise InfosPiece je n'ai pas de mal, mais pour les deux autres j'ai du mal. Et la question de ce poste concerne le tableau Infos.

                • Partager sur Facebook
                • Partager sur Twitter
                  18 mai 2018 à 11:22:08

                  Si la structure de la balise Infos est figée tu n'as pas besoin de faire de for-each mais simplement appeler les balises les une après les autres ... par leur nom ...

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                    18 mai 2018 à 11:30:03

                    Oui je sais comment appeler la balise, mais comment choisir à quelle position elle va s'afficher dans mon tableau?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 mai 2018 à 12:17:00

                      Bah ...

                      <table>
                      	<tr>
                      		<th scope="col">Article</th>
                      		<th scope="col">Num Montage</th>
                      		<th scope="col">Type prod</th>
                      		etc.
                      	</tr>
                      	<tr>
                      		<td><xsl:value-of select="Carton/Infos/article"/></td>
                      		<td><xsl:value-of select="Carton/Infos/numMontage"/></td>
                      		<td><xsl:value-of select="Carton/Infos/typeProd"/></td>
                      		etc.
                      	</tr>
                      </table>
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

                      Créer un tableau en XSL remplissable case par case

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown