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 :

[Debutant XSLT] recursivité dans le xml ?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut [Debutant XSLT] recursivité dans le xml ?
    Bonjour à tous,

    Je me pose une question mais je ne trouve pas ma réponse dans les tutos ou autres

    Voila, imaginons un fichier xml comme suit :

    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
     
    <sommaire>
    <chapitre numero="1">
    <chapitre numero="1-1">
    <titre ="titre1" />
    <titre ="titre2" />
    </chapitre>
    <chapitre numero="1-2">
    <chapitre numero="1-2-1">
    </chapitre>
    <chapitre numero="1-2-2">
    </chapitre>
    </chapitre>
    </chapitre>
    </chapitre>
    Bref, vous voyez ce que je veux dire en gros (désolé pour la présentation, je ne sais pas comment mettre des tabulations)

    Donc grosso modo, j'ai des balises chapitre les unes dans les autres et je souhaiterai y associer un fichier xsl pour les présenter mais je ne sais pas vraiment comment y coller de la recursivité pour qu'il applique ca aux catégories, sous categ, sous sous categ... à l'infini.

    Auriez vous une idée, un lien ou quelque chose du genre pour que je puisse voir comment cela fonctionne svp ? je n'arrive pas à trouver

    Merci d'avance !
    @ ++

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

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

    XSLT a été conçu exactement dans ce but, et la récursivité est implicite dans son fonctionnement. Il suffit d'employer à bon escient <xsl:apply-templates>, et d'écrire les <xsl:template> qui vont bien.
    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 averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    Salut,

    oui en effet, j'ai tout de meme reussi à trouver ce que je cherchais ^^
    Donc j'ai mieux compris le but de la balise xsl:apply-templates ca fonctionne meme plutot bien ^^ mais là je suis en train de plancher sur un autre probleme

    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="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" 
               xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
     
      <xsl:template match="sommaire">
      	<ul>
      	<xsl:apply-templates select="chapitre" />
    	</ul>
      </xsl:template>
     
     
      <xsl:template match="chapitre">
      	<li><xsl:value-of select="@num" /></li>
        	<li><ul><xsl:apply-templates select="chapitre" /></ul></li>
      </xsl:template>
     
    </xsl:stylesheet>
    Donc là le problème est que les balises <li><ul> et </ul></li> sont forcement interpretée meme lorsqu'il n'y a pas de noeud enfant, donc je suis en train de voir pour bidouiller ca pour qu'il n'affiche que lorsque c'est necessaire.
    Je reviendrais ici si j'ai un probleme (je ne tagge donc pas encore le topic qui reste à moitié resolu finalement ^^)

    Merci quand meme ^^
    ++

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    Ca y est je peux fermer le topic
    j'ai trouvé une maniere de faire ce que je cherchais à faire :

    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" 
               xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
     
      <xsl:template match="sommaire">
      	<ul>
      	<xsl:apply-templates select="chapitre" />
    	</ul>
      </xsl:template>
     
     
      <xsl:template match="chapitre">
      	<li><xsl:value-of select="@num" /></li>
    	<xsl:if test="count(chapitre) &gt; 0">
        		<li><ul><xsl:apply-templates select="chapitre" /></ul></li>
    	</xsl:if>
      </xsl:template>
     
    </xsl:stylesheet>
    Ca fonctionne impec ^^
    Si vous avez une autre suggestion vis à vis de ma technique, je serais ravi de la lire !
    @ bientot

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

Discussions similaires

  1. [XSLT] javascript dans xsl/xml
    Par loutemilou dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 04/07/2011, 13h44
  2. [debutant] ANT replace dans web.xml
    Par totoche dans le forum ANT
    Réponses: 2
    Dernier message: 15/10/2009, 22h54
  3. [Débutant][XSLT] Merger 2 fichiers XML
    Par arthix dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 06/08/2007, 10h20
  4. [XSLT][.NET] Transformer du XML dans un string
    Par Floyd dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 31/10/2005, 15h41
  5. [XML-XSLT] Données dans un tableau
    Par Hoegaarden dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 10/12/2004, 15h51

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