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 une arbo


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Par défaut [XSL] Afficher une arbo
    Bonjour,

    J'ai un fichier XML quelconque, par exemple :
    <a id="bonjour">
    <b id="coucou">
    <c id="hello"/>
    <c id="youpi"/>
    </b>
    <b>
    ....
    </b>
    <a>

    J'aimerais afficher a partir de ce fichier un resultat du type :
    bonjour-coucou-hello
    bonjour-coucou-youpi
    ...

    Avec des for-each et value-of jarrive a afficher hello et youpi mais je ne sais pas comment afficher la valeur bonjour et coucou dans ma ligne. Autrement dit, comment acceder aux elements parents dans ma hierarchie ?

    Merci beaucoup

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    cela se fait assez simplement :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="text"/>
        <xsl:template match="*">
            <xsl:param name="path"/>
            <xsl:choose>
                <xsl:when test="*">
                    <xsl:apply-templates select="*">
                        <xsl:with-param name="path" select="concat($path, @id, '-')"/>
                    </xsl:apply-templates>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="concat($path, @id, '
    ')"/>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:template>
    </xsl:stylesheet>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 79
    Par défaut
    Merci c'est presque parfait, mais j'aimerais comprendre le principe de ton when / otherwise.

    En effet j'aimerais ajouter un retour a la ligne apres chaque element

    Merci encore

  4. #4
    Membre émérite
    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
    Par défaut
    tant qu'il y a des éléments sous l'élement courant je boucle sinon j'affiche la concaténation

Discussions similaires

  1. [XSL-FO] Afficher une info en filigrane et en diagonal
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 11/07/2007, 17h44
  2. [XSL-FO] Afficher une image avec XSL
    Par HebusBreizh dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 04/06/2007, 16h58
  3. Réponses: 3
    Dernier message: 18/11/2005, 16h58
  4. [XSL] Afficher une page XML à partir d'un script PHP
    Par JiJiJaco dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 10/04/2005, 14h41
  5. [XML][XSL]afficher une checkbox cochée
    Par kirk80 dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/09/2004, 17h49

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