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 :

Problème de separateur


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
    Novembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 166
    Par défaut Problème de separateur
    Bonjour,

    Pour séparer les nœuds par ":" j'utilise la fonction concat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Fichier XML
    <racine num="0">
    	<noeud num="1">
    		<noeud num="3">
    			<noeud num="5"/>
    			<noeud num="6"/>
    		</noeud>
    		<noeud num="4">
    			<noeud num="7"/>
    		</noeud>
    	</noeud>
    	<noeud num="2"/>
    </racine>
    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
     
    Fichier xsl
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
       <xsl:output method="xml" indent="yes" />
     
    	<xsl:template match="/">
    		<html>
    			<body>
    				<xsl:for-each select="//node()">
    					<xsl:value-of select="concat(':',@num)"/>
    				</xsl:for-each>
    			</body>
    		</html>
    	</xsl:template>
    </xsl:stylesheet>
    J'obtiens le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html>
       <body>0 ::  :: 1 ::  :: 3 ::  :: 5 ::  :: 6 ::  ::  :: 4 ::  :: 7 ::  ::  ::  :: 2 ::  :: </body>
    </html>
    problème: il me duplique le séparateur plusieurs fois.

    résultat attendu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html>
       <body>0 :: 1 :: 3 :: 5 :: 6 :: 4 :: 7 :: 2 :: </body>
    </html>
    Merci de votre aide.
    Bonne journée

  2. #2
    Membre confirmé
    Inscrit en
    Novembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 166
    Par défaut Problème de separateur
    Je pense qu'on peux faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:for-each select="/racine|/racine/noeud|/racine/noeud/noeud|/racine/noeud/noeud/noeud">
     					<xsl:value-of select="concat(@num,':')" />
    </xsl:for-each>

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui ça marche, mais... En fait, ce qui allait pas avec node(), c'est qu'il récupère aussi tous les blancs qui servent à l'indentation.
    Le mieux ce serait de juste sélectionner tout ce qui a un attribut @num :

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 166
    Par défaut
    Effectivement c'est mieux avec un select sur l'attribut @num.

    Merci

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

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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