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] compte et affichage des noeuds distincts


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Points : 18
    Points
    18
    Par défaut [XSLT] compte et affichage des noeuds distincts
    Bonjour du sour ! Bonsoir !

    bon j'ai un XML du 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
    15
    16
    17
     
    <racine>
       <film>
          <titre>Titre 1
          </titre>
          <acteur>acteur AA
          </acteur>
          <acteur>acteur BB
          </acteur>
       </film
       <film>
          <acteur>acteur CC
          </acteur>
          <acteur>acteur AA
          </acteur>
       </film>
    </racine>
    J'arrive à compter et afficher le nombre total d'acteurs
    4 (AA, BB, CC, AA)

    mais je souhaiterai avoir
    nombre d'acteurs distinct (ici = 3 ; j'obtiens soit, 2, soit 4)
    et donc dans le meme genre la liste des acteurs distincts :
    j'ai soit les 4, soit les 2 premiers noeuds (AA et CC)
    (avec le code du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <xsl:value-of select="not( preceding-sibling::film/acteur = acteur )" />
    <xsl:value-of select="not( preceding::film/acteur = acteur )" />
    )
    ARGGGG


    merci de m'envoyer vos tuyaux !
    a bientôt

    benoit / xoubidur

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    a mon avis tu es sur la bonne piste pour ma part tout ce qui est les group by j'utilise des codes comme cela
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:output 
      encoding="ISO-8859-15"
      method="html"
      doctype-public="-//W3C//DTD HTML 4.01//EN"
      doctype-system="http://www.w3.org/TR/html4/strict.dtd"
      indent="yes" />
     
    <xsl:template match="students">
    	<html>
    	<xsl:for-each select="student">
    		<xsl:sort select=".//sex" order="ascending"/>
    		<xsl:variable name="sexcurrent" select=".//sex"/>
    		<xsl:if test="not(preceding-sibling::student//sex=$sexcurrent)">
    			<xsl:variable name="id"><xsl:value-of select=".//sex"/></xsl:variable>
    			<h1> sexe: <xsl:value-of select="//base/sexs/sex[@id=$id]"/></h1>
     
    			<ul>
    				<xsl:for-each select="//student[.//sex=$sexcurrent]">
    					<li><xsl:value-of select=".//name"/></li>
    				</xsl:for-each>
    			</ul>
     
    		</xsl:if>
    	</xsl:for-each>
     
    	</html>
    </xsl:template>
     
    </xsl:stylesheet>

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    bah non toujours pas :-|

    j'ai juste le 1er acteur de chaque film qui ressort ....
    comment accéder à tous les acteurs ?
    et n'afficher que ceux qui ne sont pas en double ?
    re-merci d'avance

    a+
    benoit / xoubidur

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 50
    Points : 56
    Points
    56
    Par défaut
    peut etre un truc du style
    regarder systématiquement si un précédent a la meme valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <xsl:template match="film/acteur">
     <xsl:variable name="val"><xsl:value-of select="."/></xsl:variable>
     <xsl:choose>
      <xsl:when test="preceding::film/acteur[. = $val]"/>
      <xsl:otherwise>
    	  <fo:block><xsl:value-of select="."/></fo:block>
      </xsl:otherwise>
     </xsl:choose>
    </xsl:template>
    je suis pas toujours de mes syntaxes avec les [

  5. #5
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    la suppression de doublon et le "regroupement" sont deux questions frequemment posé et dont les réponses sont donc dans la FAQ XML et sur ce forum.

    Merci d'utiliser la fonction rechercher

Discussions similaires

  1. [jGraphx] Problème d'affichage des noeuds d'un graphe
    Par af.zakaria dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 04/05/2013, 14h35
  2. [jGraphx] Problème d'affichage des noeuds d'un graphe
    Par af.zakaria dans le forum Graphisme
    Réponses: 0
    Dernier message: 04/05/2013, 02h02
  3. Réponses: 6
    Dernier message: 18/09/2009, 09h35
  4. Réponses: 2
    Dernier message: 25/02/2008, 08h35
  5. affichage des comptes utilisateurs
    Par christdu13 dans le forum Windows
    Réponses: 8
    Dernier message: 24/05/2006, 19h49

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