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 :

comment auto-incrémenté un "element name"


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut comment auto-incrémenté un "element name"
    Salut tout le monde,
    Avec cet exemple d'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
    16
    17
    18
    19
    <xsl:template match="/">
    		<xsl:element name="ADRESSE">
    			<xsl:choose>
    				<xsl:when test="//URL">	 
    					<xsl:apply-templates select="//NOM"/>
    				</xsl:when>
    			 </xsl:choose>
    		</xsl:element>
    	</xsl:template>
     
    		 <xsl:template match="//NOM">
               <xsl:variable name="nom" select="."/> 				
    			  <xsl:variable name="url" select="//URL"/>
    			  <xsl:element name="Mailto">
    				<xsl:value-of select="concat($nom,'@',$url)"/>
    			  </xsl:element>
    		 </xsl:template>
     
    </xsl:stylesheet>
    J'ai un résultat du genre:
    <ADRESSE>
    <Mailto>tata@truc.fr</Mailto>
    <Mailto>titi@truc.fr</Mailto>
    ...
    <Mailto>toto@truc.fr</Mailto>
    </ADRESSE>



    J'aimerai pouvoir incrémenter les nom d'élément "Mailto" pour obtenir quelque chose comme :
    <ADRESSE>
    <Mailto1>tata@truc.fr</Mailto1>
    <Mailto2>titi@truc.fr</Mailto2>
    ...
    <Mailto"n">toto@truc.fr</Mailto"n">
    </ADRESSE>


    merci pour votre aide et bonnes fêtes de fin d'année

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    La prochaine fois un fragment du XML serait bienvenue

    On va deja commence par corrigé les erreurs
    <xsl:template match="//NOM">
    non , c'est

    <xsl:template match="NOM">
    ensuite

    <xsl:variable name="url" select="//URL"/>
    <xsl:element name="Mailto">
    <xsl:value-of select="concat($nom,'@',$url)"/>
    </xsl:element>
    est certainement faux, en effet $url contiendra TOUTES les URL (quelque soit l'endroit ou elle se trouvent) du document et non pas celle concernée par le traitement.Si URL est fils de NOM
    <xsl:variable name="url" select="URL"/>
    suffit et encore la variable est supperflue comme dans le point suivant, on peut mettre un xpath ditrrectement directement dans un concat

    la variable nom est inutile
    <xsl:value-of select="concat(.,'@',$url)"/>
    doit suffire




    <xsl:element name="{concat('Mailto',position())}">
    devrait marché pour la suite

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/11/2007, 17h30
  2. Réponses: 3
    Dernier message: 27/11/2005, 20h57
  3. [cr 8.5] comment exploiter les données d'un "array"
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 12
    Dernier message: 09/06/2005, 14h03
  4. [debutant]Comment remettre l'auto-incrémentation à 0
    Par syl2095 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/01/2005, 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