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 :

XSL comparaison ligne tableau


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Par défaut XSL comparaison ligne tableau
    Bonjour ,

    je suis en train de developper un .XSL ( Xml style) cependant j'éprouve quelque difficulté pour réaliser ce qui suit

    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
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="ISO-8859-1" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" indent="yes" />
     
    <xsl:template match="/"> 
    <html>
    <header>
     	<title> XML_Rapport </title>
    </header>
    <body bgcolor="#FFFFCC">
     
    <table style=" width:70% ; align:center">
    	<tr>
    	<img style="float:left" src="http://94.23.30.57/portailDS/Imgs/logoDsBas.png" />
    	<th style="border:3" ><H1><u>Rapport de Copie</u></H1></th>
     
    	</tr>
    </table>
     
    <br />
    <hr />
    <p> <b>Rapport de Copie du :</b> <xsl:value-of select="RapportCopie/DCP_Copie/Date"/></p>
    <p> <b>Nom du DCP : </b><xsl:value-of select="RapportCopie/DCP_original/Nom_DCP"/></p>
    <hr />
    <br />
     
     
    <table border="2" cellspacing="0" cellpadding="3" bgcolor="#C0C0C0"  style="float:left ; width:70% ">
     
    	<tr bgcolor="FF9900">
    	<th>Nom du Fichier Original</th>
    	<th>Hash Original</th>
    	</tr>
     
    	<xsl:for-each select="RapportCopie/DCP_original/Hash">
    		<tr>
    		<td><xsl:value-of select="@name"/></td>
    		<td><xsl:value-of select="@hash"/></td>
    		</tr>
    	</xsl:for-each>
     
    	<tr bgcolor="FF9900">
    	<th>Nom du Fichier Originale</th>
    	<th>Taille Fichier Originale </th>
    	</tr>
    	<xsl:for-each select="RapportCopie/DCP_original/Taille_fichier_octet">
    		<tr>
    		<td><xsl:value-of select="@name"/></td>
    		<td><xsl:value-of select="@size"/></td>
    		</tr>
    	</xsl:for-each>
     
    </table>
     
    <table border="2" cellspacing="0" cellpadding="3" style=" width:30% " bgcolor="#CCCCFF"  >
     
    	<tr bgcolor="#FFFF00">
    	<th>Hash Fichier Copier </th>
    	</tr>
     
    	<xsl:for-each select="RapportCopie/DCP_Copie/Hash">
    		<tr>
    		<td><xsl:value-of select="@hash"/></td>
    		</tr>
    	</xsl:for-each>
     
    	<tr bgcolor="#FFFF00" >
    	<th>Taille Fichier Copier </th>
    	</tr>
    	<xsl:for-each select="RapportCopie/DCP_Copie/Taille_fichier_octet">
    		<tr>
    		<td><xsl:value-of select="@size"/></td>
    		</tr>
    	</xsl:for-each>
     
    </table>
     
    <br />
    <hr />
    <p align="center"><FONT size="1pt">  Généré par DCP_TOOLS </FONT></p>
    <p align="center"><FONT size="1pt">  <a href="http://www.distri-service.com">Site de Distribution service</a></FONT></p>
     
    </body>
    </html>
     
    </xsl:template>
    </xsl:stylesheet>
    Voila ce code XSL me donne une page avec 2 tableau affichant les valeurs d'un fichier XML cependant je voudrais rajouter une colonne supplémentaire afin de dire si la colonne 2 et 3 sont identique alors OK

    Plus clairement je posséde un tableau de 3 colonne ( nom du fichier , hash fichier , hash fichier après copie ) je voudrais une quatrième colonne afin de dire si hash fichier == hash fichier copie je pense que c'est simple mais je ne sais pas du tout si c'est possible a faire et si oui comment ne maîtrisant que très peu ce XSL je galère un peu

    Si quelqu'un a une idée je suis preneur

    Bien cordialement

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Citation Envoyé par flaschgordon Voir le message
    Plus clairement je posséde un tableau de 3 colonne ( nom du fichier , hash fichier , hash fichier après copie ) je voudrais une quatrième colonne afin de dire si hash fichier == hash fichier copie
    C'est possible, il suffit de faire un test avec un choose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <xsl:choose>
      <xsl:when test="RapportCopie/DCP_original/Hash = RapportCopie/DCP_Copie/Hash">
        <!-- valeur en cas d'égalité -->
      </xsl:when>
      <xsl:otherwise>
        <!-- valeur en cas de différence -->
      </xsl:otherwise>
    </xsl:choose>
    Par contre tu n'as absolument pas une table avec 3 colonnes actuellement. Tu as 2 tables collées l'une à l'autre, la première avec deux colonnes et la seconde avec une.
    Il serait beaucoup plus simple pour toi, plus tard, de ne faire qu'une seule table et de traiter ça ligne par ligne plutôt que colonne par colonne comme tu le fais actuellement.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Par défaut
    Effectivement pardon 2 table comme tu la bien dit j'ai effectivement 2 table .
    Je vais regarder cela merci beaucoup c'est vrai que j'ai beaucoup de mal avec la syntaxe de XSL c'est assez moche ^^

    Je reviens vers vous pour dire ou j'en suis et si je n'ai pas plus aucuns problème

    Merci encore

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Par défaut
    Bonjour,

    je revient donc vers vous j'ai bien pris note de la fonction choose j'ai donc placé ainsi dans mon code

    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
     
    <tr bgcolor="#FFFF00">
    <th>Hash Fichier Copier </th>
    </tr>
     
     
    	<xsl:for-each select="RapportCopie/DCP_Copie/Hash">
    		<xsl:choose>
    		<xsl:when test="RapportCopie/DCP_original/Hash = RapportCopie/DCP_Copie/Hash">
    			<tr>
    			<td bgcolor="#99FF99"><xsl:value-of select="@hash"/></td>
    			</tr>
    		</xsl:when>
    		<xsl:otherwise>
    	    		<tr>
    			<td bgcolor="#FF6666"><xsl:value-of select="@hash"/></td>
    			</tr>
    	 	 </xsl:otherwise>
    		 </xsl:choose>
    	</xsl:for-each>
    Cependant cela ne marche pas en effet le test qui je demande c'est si Hash = Hash cependant mon fichier XML est comme ceci

    <Hash name=truc.mxf hash=djdieaodlfp></Hash>
    Comment puis-je donc acceder a la donnée hash dans mon test ?

    Encore merci de vôtre aide
    Bien cordialement

  5. #5
    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

    Il faut faire un peu des tutoriels quand même, avant de poser des question. Ça va bien plus vite -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Par défaut
    J'ai dit plus haut que je ne maîtrisais que très peu cependant tu as pu remarquer dans le code fournit en premier post que j'ai déjà utiliser ce genre de balise , je sais donc que le @valeur me permet d'accéder a un attribut j'ai donc demandé cela plus pour une certitude que par méconnaissance car mon test ne marche pas et je ne vois pas d’où peut provenir le problème

    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:for-each select="RapportCopie/DCP_Copie/Hash">
    		<xsl:choose>
    		<xsl:when test="RapportCopie/DCP_original/Hash/@hash = RapportCopie/DCP_Copie/Hash/@hash">
    			<tr>
    			<td bgcolor="#99FF99"><xsl:value-of select="@hash"/></td>
    			</tr>
    		</xsl:when>
    		<xsl:otherwise>
    	    		<tr>
    			<td bgcolor="#FF6666"><xsl:value-of select="@hash"/></td>
    			</tr>
    	 	 </xsl:otherwise>
    		 </xsl:choose>
    	</xsl:for-each>
    mon test met en rouge les lignes non égale et en vert les lignes égale du moins c'est l'idée que je veux mettre en place mais cela ne semble pas du tout marcher puisqu'il me met tout en rouge

    Donc quand je pense que le test n'est peut être pas si bon il ne doit pas pouvoir acceder a la bonne valeur et la je ne vois pas pourquoi

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

Discussions similaires

  1. comparaison lignes d'un tableau
    Par roxydc dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/09/2012, 21h31
  2. [xsl-fo] ligne dans un tableau
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/04/2010, 11h15
  3. Faire apparaitre/disparaitre lignes tableau -Comment Faire ?
    Par mathieu7497 dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 31/03/2006, 23h39
  4. [Tableaux] débutant : supprimer ligne tableau
    Par samplaid dans le forum Langage
    Réponses: 2
    Dernier message: 27/03/2006, 10h39
  5. xsl-fo : ligne de tableau specifique en fonction d'un test
    Par de LANFRANCHI dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/05/2005, 08h24

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