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 :

Conserver l'ordre des éléments


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Conserver l'ordre des éléments
    Bonjour,
    Mon problème c'est d'afficher une résultat avec XSLT de même ordre que la squelette du fichier source, pour mieux comprendre voici l'exemple suivant :
    <A>
    <B/>
    <B/>
    <C/>
    <D/>
    <C/>
    </A>

    Pour chaque B on afficher b, C on affiche c et D on afficher d. Donc la résultat sera comme suite : bbcdc.
    Autre exemple :
    <A>
    <C/>
    <C/>
    <C/>
    <D/>
    <B/>
    </A>

    La résultat sera : cccdb
    Autre exemple :
    <A>
    <B/>
    <D/>
    <C/>
    <B/>
    <B/>
    <C/>
    </A>

    La résultat sera : bdcbbc.
    Pour chaque fichier source donnée on veux avoir une résultat de même ordre que la squelette. Comment je peut faire ça avec XSLT, SVP.
    Merci pour votre attention

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Avec des templates. L'idée est de considérer XSLT un peu comme CSS : on déclare des règles à appliquer aux éléments... Et ces règles s'appliquent dans l'ordre où les éléments sont rencontrés, bien sûr.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="B">b</xsl:template>
    et pareil pour les autres éléments.

  3. #3
    Candidat au Club
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Mais le problème c'est que je ne peut pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="/"><xsl:template match="B">b</xsl:template>....</xsl:template>
    parce que mon travaille ne s'arrête pas sur cette transformation j'ai d'autre transformation a faire. Il n'y a pas d'autre solution ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Un template ne peut pas être dans un autre template, non.

    Mais il suffit d'appeler l'application des templates avec <xsl:apply-templates>.
    De toute façon j'ai donné la solution générale, mais si ce n'est pas exactement ce qu'il te faut, eh bien tu vas devoir montrer du concret.

Discussions similaires

  1. [C#] Inverser l'ordre des éléments d'une Hashtable
    Par lancer83 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 31/08/2006, 20h03
  2. [Struts] ordre des éléments dans un tableau de propriétés
    Par zais_ethael dans le forum Struts 1
    Réponses: 2
    Dernier message: 09/05/2006, 15h54
  3. [XSL][débutant]trié l'ordre des éléments d'un fichier xml
    Par pistache42 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 19/04/2006, 10h37
  4. [XSL] Ordre des éléments présentés
    Par Cupidon dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/01/2006, 13h58
  5. [C#] ordre des éléments dans un datagrid
    Par liliprog dans le forum ASP.NET
    Réponses: 3
    Dernier message: 19/09/2005, 16h31

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