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 - Afficher le nom de balise et le nbr de fois utilisée


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut XSL - Afficher le nom de balise et le nbr de fois utilisée
    Bonjour,

    Existe t il une fonction qui permette à partir d'un fichier XML, d'afficher le nom de la balise et le nombre de fois qu'elle est présente
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <groupe>
    <toto>fffff</toto>
    <titi><toto>ggggg</toto>
    </titi>
    </groupe>
    Statistique :
    groupe:1
    toto:2
    titi:1

    J'ai trouvé comment compté le nombre d'éléments d'un fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xsl:template match="/">
     <xsl:variable name="elem">
      <xsl:value-of select="count(//*)" />
     </xsl:variable>
    <xsl:text>Il y a </xsl:text>
    <xsl:value-of select="$elem"/>
    </xsl:template>
    Merci

  2. #2
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour henri93,

    En partant de ton code, tu peut obtenir le nombre de noeud toto,
    il suffit de modifier le Xpath //* :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xsl:template match="/">
     <xsl:variable name="elem">
      <xsl:value-of select="count(//toto)" />
     </xsl:variable>
    <xsl:text>Il y a </xsl:text>
    <xsl:value-of select="$elem"/>
    </xsl:template>
    A partir de là, tu peut facilement construire une template qui prenne en argument ton arborescence et un nom de noeud.

  3. #3
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut
    Merci pour la réponse
    j'ai un problème lorsque j'exécute le xpath :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <xsl:template match="/">
    	<xsl:for-each select="//*">
     		<xsl:variable name="elem">
      			<xsl:value-of select="count(//name())" />
     		</xsl:variable>
     		<xsl:value-of select="name()"/>
    		<xsl:text> Il y a </xsl:text>
    		<xsl:value-of select="$elem"/>
    	</xsl:for-each>
    </xsl:template>
    L'erreur est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Error at xsl:value-of on line 6 of file:/D:/Projets/PRODUCTION_TOULOUSE/TIGRE-PA
    PERLYSE/DEV/Statistique/x.xsl:
      Error in expression count(//name()): Unexpected token [<function>] in path exp
    ression
    Transformation failed: Failed to compile stylesheet. 1 error detected.
    J'ai également une erreur si je mets une variable.

    Merci

  4. #4
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour henri,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="count(//name())" />
    Oui là ca ne passe pas car l'expression XPath //name() correspond ... à rien.

    La fonction count retourne le nombre de noeuds de l'ensemble de noeuds passé en argument. Ton argument doit donc être de la forme //nomDuNoeud.

  5. #5
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut
    Merci

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

Discussions similaires

  1. Afficher le nom de la balise source courante
    Par enzostar dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/08/2012, 17h39
  2. [XL-2003] Mapper un fichier XML sans afficher le nom des balises.
    Par Lorito dans le forum Excel
    Réponses: 1
    Dernier message: 19/02/2010, 15h48
  3. [XSL] Changer le nom d'une balise et d'un attribut XML
    Par castaka dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/10/2008, 19h33
  4. [XSLT] comment afficher tous les noms de balises
    Par stanilas dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/11/2005, 22h24
  5. XLS - Nom des balise
    Par lakrimo dans le forum XMLRAD
    Réponses: 2
    Dernier message: 05/02/2004, 11h12

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