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 :

[XSL] Existence d'un noeud


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut [XSL] Existence d'un noeud
    Bonjour tout le monde,

    J'aurais besoin de votre aide pour résoudre un problème de test...

    je m'explique, j'ai le fichier xml suivant par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE concept SYSTEM "Template_concept.dtd">
    <?xml-stylesheet href="REULTIMATE.xsl" type="text/xsl" ?>
    <concept titre="ULTIMATE">
    	<ElementLogique name="1" >
                      ce qu'on veut
                 </ElementLogique>
                 <ElementLogique name="2" >
                      ce qu'on veut
                 </ElementLogique>
    </concept>
    et le fichier xsl suivant
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <xsl:stylesheet version = '1.0' 
         xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
    <xsl:output 
      method="html"
      encoding="ISO-8859-1"
      doctype-public="-//W3C//DTD HTML 4.01//EN"
      doctype-system="http://www.w3.org/TR/html4/strict.dtd"
      indent="yes" />
     
    <xsl:template match="concept"> 
    	<html>
    	     <body>
    		<h1 align="center"> 
    			<xsl:value-of select="//@titre"/> 
    		</h1>
     
    		<h2> 
    		       Titre1			
    		</h2> 
    		<p>
    		       <tab> 
    			<xsl:copy-of select="//ElementLogique[@name='1']"/>
    		      </tab> 							</p>
     
    		<h2> 
    		       Titre 2		
    		</h2> 
    		<p>
    		       <tab> 
    			   <xsl:copy-of select="//ElementLogique[@name='2']"/>
    	                   </tab> 
    		</p>
     
    		<h2> 
    		    	Titre3	
    		</h2> 
    		<p>
    		     <tab> 
    		           <xsl:copy-of select="//ElementLogique[@name='3']"/>
    		     </tab> 
    		</p>
    		</body>
    	</html>
    </xsl:template>
    </xsl:stylesheet>
    Donc comme vous le pouvais constater ma feuille xsl prend en compte un élement logique d'attribut 3 qui n'existe pas dans mon fichier xml, ce que je voudrais donc faire c'est entourer la partie suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                    <h2> 
    		    Titre3	
    		</h2> 
    		<p>
    		     <tab> 
    		           <xsl:copy-of select="//ElementLogique[@name='3']"/>
    		     </tab> 
    		</p>
    d'une condition vérifiant l'existence d'un élément logique d'attribut 3 dans mon fichier xml.

    Encore merci de votre aide

  2. #2
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    j'ai pas tout lu

    Mais pour l'existence d'un noeud il suffit de mette :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:if select="le nom de ton noeud">
    </xsl:if>
    essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:if select="//ElementLogique[@name='3']!=''">
    </xsl:if>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut
    Merci pour ta réponse Katachana.

    Je viens d'essayer ce que tu m'as recommandé mais j'obtient une erreur de ce type
    L'attribut 'select' n'est pas valide sur 'xsl:if'.
    Je vais essayer de passer par une variable.

  4. #4
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    oui désolé c'est test et pas select !!!!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="//ElementLogique[@name='3']!=''"> </xsl:if>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut
    héhé c'est bon ca marche avec test ....

    Merci beaucoup katachana

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

Discussions similaires

  1. Peut on ecrire dans un fichier XSL existant?
    Par Mickey.jet dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 30/03/2006, 15h48
  2. XSL : existance d'un fichier
    Par vanessa_nanou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 18/01/2006, 15h17
  3. [XSL] savoir si le noeud courant est root
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/11/2005, 16h18
  4. [XSL][Noob]Compter des noeuds de meme valeur??
    Par Devil666 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 22/07/2005, 10h07
  5. [XPATH] ou [XSL] Arret au premier noeud
    Par laurenzo dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 25/04/2005, 16h42

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