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 :

[Débutant] [XSLT] URL à partir d'éléments récursifs


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Par défaut [Débutant] [XSLT] URL à partir d'éléments récursifs
    Bonjour à tous.

    Voici un exemple de la structure de mes documents XML en entrée :

    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
     
    <categories>
    	<category>
    		<id>animaux</id>
    		<caption>Les animaux</caption>
    		<description>...</description>
    		<categories>
    			<category>
    				<id>oiseaux</id>
    				<caption>Les oiseaux</caption>
    				<description>...</description>
    			</category>
    			<category>
    				<id>reptiles</id>
    				<caption>Les reptiles</caption>
    				<description>...</description>
    			</category>
    		</categories>
    	</category>
    	<category>
    		<id>plantes</id>
    		<caption>Les plantes</caption>
    		<description>...</description>
    		<categories>
    		...
    		</categories>
    	</category>
    	...
    </categories>
    et voici ma feuille XSLT pour transformer tout ça en liste XHTML :

    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
     
    <xsl:template match="categories">
    	<ul>
    		<xsl:apply-templates/>
    	</ul>
    </xsl:template>
     
    <xsl:template match="category">
    	<li>
    		<a>
    			<xsl:attribute name="href">
    				????????
    			</xsl:attribute>
    			<xsl:attribute name="title">
    				<xsl:value-of select="description"/>
    			</xsl:attribute>
    			<xsl:value-of select="caption"/>
    		</a>
    	</li>
    	<xsl:apply-templates select="categories"/>
    </xsl:template>
    J'ai essayé plusieurs trucs pour générer l'URL (attribut href) à partir des éléments <id></id>, dans le style "/animaux/oiseaux/" ou "/plantes/", avec des variables, mais je n'arrive à rien. Je suis sûr que c'est très simple mais rien à faire. Quelqu'un aurait une idée ?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Par défaut
    J'ai réussi à résoudre mon problème tout seul finalement. Il suffit d'utiliser le passage de paramètres aux modèles de niveau inférieur, étant donné qu'il est impossible de modifier une variable une fois qu'elle a été définie.

    Voici la solution au cas où quelqu'un en aurait besoin :

    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
     
    <xsl:param name="base-href" select="'/'"/>
     
    <xsl:template match="categories">
    	<ul>
    		<xsl:apply-templates select="category">
    			<xsl:with-param name="base-href" select="$base-href"/>
    		</xsl:apply-templates>
    	</ul>
    </xsl:template>
     
    <xsl:template match="category">
    	<xsl:param name="base-href"/>
    	<xsl:variable name="href"><xsl:value-of select="$base-href"/><xsl:value-of select="id"/>/</xsl:variable>
    	<li>
    		<a>
    			<xsl:attribute name="href">
    				<xsl:value-of select="$href"/>
    			</xsl:attribute>
    			<xsl:attribute name="title">
    				<xsl:value-of select="description"/>
    			</xsl:attribute>
    			<xsl:value-of select="caption"/>
    		</a>
    	</li>
    	<xsl:apply-templates select="categories">
    		<xsl:with-param name="base-href" select="$href"/>
    	</xsl:apply-templates>
    </xsl:template>

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

Discussions similaires

  1. erreur extraction url à partir de mysql
    Par rozow dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/03/2006, 10h45
  2. [Net]Création d'une URL à partir d'une File
    Par maxvador dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 11/12/2005, 21h22
  3. [Débutant][XSLT]Eviter les doublons
    Par leminipouce dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/10/2005, 11h34
  4. [Débutant - XSLT] instructions serveurs possibles ?
    Par sempire dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 06/10/2005, 11h06
  5. [Stratégie] Lancer une url à partir d'une appli java
    Par yobogs dans le forum Général Java
    Réponses: 4
    Dernier message: 14/04/2005, 17h10

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