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 :

Problème d'écriture d'une transformation XSLT avec les boucles de conditions [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 averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Par défaut Problème d'écriture d'une transformation XSLT avec les boucles de conditions
    Bonjour à tous,

    Je voudrais savoir s'il y a quelqu'un qui peut m'aider à résoudre un problème d'écriture d'une boucle en XSLT, ma question est la suivante :
    Comment je peux écrire une transformation XML vers TXT qui traitera le document XML afin de compter en son sein le nombre d’éléments
    <Name> consécutifs qui ont la même valeur et d’afficher pour chacun des premiers de chaque série ce nombre, une tabulation et cette valeur
    Le document XMl est le suivant :
    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
    <Document>
       <Balise>
          <Name>A</Name>
       </Balise>
       <Balise>
          <Name>A</Name>
       </Balise>
       <Balise>
          <Name>A</Name>
       </Balise>
       <Balise>
          <Name>B</Name>
       </Balise>
       <Balise>
          <Name>B</Name>
       </Balise>
       <Njoueur>
          <Name>B</Name>
       </Balise>
       <Balise>
          <Name>B</Name>
       </Balise>
       <Balise>
          <Name>B<Name>
       </Balise>
       <Balise>
          <Name>B</Name>
       </Balise>
       <Balise>
          <Name>B</Name>
       </Balise>
       <Balise>
          <Name>C</Name>
       </Balise>
       <Balise>
          <Name>C</Name>
       </Balise>
       <Balise>
          <Name>C</sName>
       </Balise>
    ...
       <Balise>
          <Name>Z</Name>
       </Balise>
    ...
    <Document>
    et voici ce que j'ai pu écrire en XSLT :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        version="1.0">
        <xsl:output method="texte"/>
        <xsl:template match="Balise">
           <xsl:choose>
               <xsl:when test="Name = not(preceding-sibling::Name)">
                   <xsl:value-of select="Name [position()=1]"/>
                   <xsl:value-of select="count(//Name [ position()='1'])"/>
               </xsl:when>
               <xsl:otherwise>
               </xsl:otherwise>
           </xsl:choose>
        </xsl:template>
    </xsl:stylesheet>
    Merci de votre réponse !

    Cordialement,

  2. #2
    Membre Expert
    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
    Par défaut
    Bonjour,

    et d’afficher pour chacun des premiers de chaque série ce nombre, une tabulation et cette valeur
    je n'ai pas compris ce que tu veux obtenir.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Par défaut
    Bonjour,

    Je voudrais simplement avoir un affichage comme ça :
    A Tabulation 3
    B Tabulation 6
    C Tabulation 3
    ...
    Z Tabulation 1

    En sachant que les noms sont organisé en ordre alphabétique croissant.

    Bien cordialement,

  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
    Dans ce cas c'est plus facile (mais pas super facile quand même) : il faut faire un regroupement Muench.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Par défaut Regroupement Muench
    Bonjour,

    A vrais dire je ne comprends pas ce que veux-tu dire par regroupement muench, et si tu pares "la méthode Muench" je pense que cette feuille de style ne compte pas le nombre total de chaque nom ainsi leur valeur ???
    J'ai plutôt pensé qu'on doit utilisé des conditions pour repérer chaque nom et la fonction count() pour compter leurs valeurs (leurs nombres).

    Bien cordialement,

  6. #6
    Membre Expert
    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
    Par défaut
    Pour faire des regroupement, la méthode la plus simple est la méthode Muench.

  7. #7
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    C'est possible que ça sens difficile pour débuter sans être montré ce qu'on fait dans le champ d'action vrai.
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="text" omit-xml-declaration="yes" encoding="utf-8" />
    <xsl:key name="regrouper" match="Njoueur" use="persName"/>
     
    <xsl:template match="/">
        <xsl:apply-templates select="Liste/Njoueur[generate-id(.)=generate-id(key('regrouper',persName)[1])]" mode="proc" />
    </xsl:template>
     
    <xsl:template match="Njoueur" mode="proc">
        <xsl:value-of select="persName" />
        <xsl:text> Tabulation </xsl:text>
        <xsl:value-of select="count(key('regrouper',persName))" />
        <xsl:text>&#x0a;</xsl:text>
    </xsl:template>
     
    </xsl:stylesheet>

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Par défaut En fin la délivrance !
    Bonjour,

    Je vous remercie pour votre réponse qui est aussi claire et pratique. En fait, j'étais proche de la réponse, mais en même temps je me projeté sur des solutions un peu hazardeuses. Et puis, je n'ai pas du tout pensé d'utilisé le mode

    Bien cordialement,

  9. #9
    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
    Citation Envoyé par aladin1984 Voir le message
    Je vous remercie pour votre réponse qui est aussi claire et pratique.
    Oui, mais au final tsuji a juste travaillé pour toi au lieu de te faire chercher la réponse pour que tu apprennes.
    J'aime pas trop ça, moi. Et je ne suis pas le seul, ici.

    Citation Envoyé par aladin1984 Voir le message
    Et puis, je n'ai pas du tout pensé d'utilisé le mode
    Ben, en même temps, il ne sert à rien du tout ici.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Oui, mais au final tsuji a juste travaillé pour toi au lieu de te faire chercher la réponse pour que tu apprennes.
    J'aime pas trop ça, moi. Et je ne suis pas le seul, ici.
    C'est tellement clichée et pseudo-science de pédagogie à tel niveau extravagent et formulaire hors de votre comprehension.

  11. #11
    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
    Citation Envoyé par tsuji Voir le message
    C'est tellement clichée et pseudo-science de pédagogie à tel niveau extravagent et formulaire hors de votre comprehension.
    Je ne peux pas débattre de ça avec toi tant que tu ne sauras pas écrire dans un langage compréhensible.
    Tes codes informatiques marchent en général très bien, oui. Mais que ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Vous pouvez très bien écrire mais avec des idées fautes et bien pourries: c'est dommage.

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Par défaut
    Bonsoir,

    Je vois que thelvin n'a pas du tout apprécié que tsuji m'explique comment ça marche! et franchement je ne comprends pas du tout sa réaction. Pour te dire thelvin j'ai bien apprécié tes indications mais elles n'étaient pas aussi claire puisque j'avais l'impression que tu me donnais des explications avec un peu d'agitation. Si j'étais un pro en XSLT je ne viendrais pas du tout sur ce forum et d'ailleurs ça fait plus d'un an que je me suis inscrits ici et je consulte que ce site. J'ai passé plusieurs jours voir plusieurs semaines pour comprendre ce langage et surtout pour résoudre les questions que j'ai posé. Voilà si on est ici c'est pour s'entraider pour apprendre et comprendre pas pour s'emmerder...

    Merci quand même et je pense que ta réflexion a eu des répercussions sur la suite de mes questions, le résultat ça fait plusieurs jours que je n'ai pas eu de réponse...
    Merci quand même !

  14. #14
    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
    Tu te méprends, ce n'est pas que je m'oppose aux méthodes de tsuji, mais je ne les partage pas et quand quelqu'un se demande je n'ai pas honte de dire pourquoi. Au passage, je ne suis pas le seul.

    Tsuji ne t'a rien expliqué du tout. Il t'a donné la solution à utiliser telle quelle, il a fait le travail à ta place, point barre (avec du superflu, comme le mode.) Je veux bien croire, même si j'en doute, que voir la solution finale adaptée à ton cas, t'a permis d'apprendre quelque chose. Mais alors ce serait que tu as su apprendre sans explication.
    Note que dans ton cas je n'ai rien expliqué non plus, j'ai dit ce qu'il fallait lire pour trouver comment faire. Ça aussi ça permet d'apprendre.

    Rien dans ce que j'ai dit ne nécessite de tout savoir de XSLT, il y a une technique que tu ne connaissais pas et dont tu avais besoin, je t'ai dit où la trouver, et dit ce que tu avais besoin de savoir pour l'adapter. Je ne demande pas un haut niveau de XSLT (que je n'ai d'ailleurs pas moi-même,) mais c'est vrai que je demande un bon niveau d'informaticien capable de lire un tutoriel et de l'adapter étape par étape. Une capacité de travail et de compréhension. Parce que sinon, il n'y a rien à faire d'autre que donner la solution toute faite, et moi je ne fais pas le travail des autres.

    Tu as un bon esprit, mais tu as trop peur d'essayer des trucs et tu ne te concentres pas assez sur ce qu'on te dit. C'est pas comme ça qu'on fait de l'informatique. Essayer ça va rien casser, et quand on te dit un truc c'est important, sinon on le dirait pas.

    La solution de tsuji t'a sauvé la vie, très bien, mais elle n'a rien fait de mieux pour te faire comprendre. Et tu devrais t'en rendre compte.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    ...point barre (avec du superflu, comme le mode.)
    Ceci preuve que vous n'avez pas compris combien de considération que j'ai mis dans ma réponse: non seulement je considère montrer par exemple à point precis va bénéficie l'op, entre professionels; en plus, je voudrais démontrer ceci est une très bonne situation on peut bénéficier le attribut de mode de la recommendation xslt pour bien isoler un travail spécifique sans déranger les autres templates qui se peuvent n'avoir pas été montrés dans les postes d'auteur. Encore, je n'ecris les belles lettres comme vous faire faire profession et ne débats avec vous non plus.

  16. #16
    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
    Citation Envoyé par tsuji Voir le message
    Ceci preuve que vous n'avez pas compris combien de considération que j'ai mis dans ma réponse: non seulement je considère montrer par exemple à point precis va bénéficie l'op, entre professionels; en plus, je voudrais démontrer ceci est une très bonne situation on peut bénéficier le attribut de mode de la recommendation xslt pour bien isoler un travail spécifique sans déranger les autres templates qui se peuvent n'avoir pas été montrés dans les postes d'auteur.
    Non, je me doutais bien de tout cela. Mais quelqu'un qui ne le savait pas déjà ne risquait pas de le deviner.
    En plus, bon, l'usage est de ne mettre de mode que quand ça sert effectivement à quelque chose. J'ai pas vu de "bonnes pratiques" qui disent de le faire dans les transformations simples, et si j'en voyais j'aurais pas peur de les défier.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    ça a l'air difficile de communiquer avec des gens qui sont malintentionés tout au long. J'ai bien des choses plus utiles à faire.

  18. #18
    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
    Pas autant qu'avec des gens qui maîtrisent mal la langue. Malintentionné, je peux encore comprendre qu'on le pense ici ou là, mais dans mes derniers messages, je vous demande un peu .
    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. Comment effectuer une transformation XSLT avec Delphi ?
    Par Raylemon dans le forum Télécharger
    Réponses: 0
    Dernier message: 10/01/2012, 16h21
  2. Réponses: 0
    Dernier message: 10/01/2012, 16h20
  3. Réponses: 0
    Dernier message: 10/01/2012, 16h19
  4. Réponses: 0
    Dernier message: 10/01/2012, 16h18
  5. [XSLT] Problème de transformation XSLT avec JAVA
    Par ploxien dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 28/09/2007, 16h47

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