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 :

[XSLT][msxml]Comment exclure les balises non inclues ds un template ?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 125
    Points : 125
    Points
    125
    Par défaut [XSLT][msxml]Comment exclure les balises non inclues ds un template ?
    Bonjour a tous,
    Tout d'abord, je debute le XSLT et j'ai pris soin de parcourir les 2 tutoriels Introduction et Programmation avec XSLT.
    Du coup j'ai essaye de reproduire un petit exemple pour ma part, cependant, j'ai un doute au niveau de la prise en compte des differentes balises de mon fichier source.
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <liste_personnes>
      <quantite>2</quantite>
      <personnes>
    	  <personne>
    		  <nom>Jacques</nom>
    		  <age>25</age>
    	  </personne>	  
    	  <personne>
    		  <nom>Pierre</nom>
    		  <age>30</age>
    	  </personne>
      </personnes>
      </liste_personnes>
    et le XSLT
    Code XML : 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
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output
        method="html"
        indent="yes"/> 
     
    <xsl:template match="personnes">
      <table>
        <tr>
          <td>Nom</td>
          <td>Age</td>
        </tr>
        <xsl:for-each select="personne">
          <tr>
            <td><xsl:value-of select="nom"/></td>
            <td><xsl:value-of select="age"/></td>
          </tr>
        </xsl:for-each>
      </table>
    </xsl:template>
     
    </xsl:stylesheet>
    Cependant cela me donne ceci en sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    2<table>
    	<tr>
    		<td>Nom</td>
    		<td>Age</td>
    	</tr>
    	<tr>
    		<td>Jacques</td>
    		<td>25</td>
    	</tr>
    	<tr>
    		<td>Pierre</td>
    		<td>30</td>
    	</tr>
    </table>
    et j'ai le "2" de trop avant mon tag "table"

    Donc je pense qu'il y a qqch que je n'ai pas compris
    Ma question est donc comment exclure toutes les balises pour lesquelles je n'ai pas applique de template ?

    D'avance merci

  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
    Le pb est ici que tu parses toutes les balises, même celles pour lesquelles tu n'as pas crées de templates.Dans ce cas xslt applique par défaut les certaines des siennes dont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="text()">
    <xsl:value-of select="."/>
    </xsl:template>
    pour l'eviter il te suffit de rajouter ce template dans ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="text()"/>

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 125
    Points : 125
    Points
    125
    Par défaut
    C'est ce que je me disais en analysant mon code, mais je ne voyais pas comment resoudre ceci...

    Sinon on m'avait aussi sugere de rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="/*">
        <xsl:apply-templates select="peoples"/>
    </xsl:template>
    qui fait aussi l'affaire.

    Merci bcp

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

Discussions similaires

  1. [gcc/ld] comment "zapper" les objets non référéren
    Par jula dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 05/01/2006, 15h15
  2. Comment sélectionner les données non dupliquées
    Par Dnx dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/10/2005, 11h43
  3. Jointure;comment afficher les enregs "non doubles"
    Par Wismerill dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/04/2005, 09h30
  4. [//TODO] Comment voir les balises TODO dans les problemes?
    Par romain3395 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/12/2004, 08h53

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