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] xsl:for-each + EXCEPT


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 47
    Points : 36
    Points
    36
    Par défaut [XSLT] xsl:for-each + EXCEPT
    Bonjour à tous,

    J'ai besoin de votre aide pour une transformation d'un fichier xml en html via xsl...(Mon but étant d'obtenir un rapport html sur base des données contenues dans le fichier xml)

    Voici les parties intéressantes des fichiers xml et xsl

    XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="UTF-8" ?> 
    <AntecGyn label="Antécédents gynécologiques" topic-id="1760084">
      <TheraHorSubst label="Thérapie hormonale substitutive" element-id="6064360">non</TheraHorSubst> 
      <AgeMenarche label="Age de la ménarche (ans)" element-id="6207597">12</AgeMenarche> 
      <Gestite label="Gestité" element-id="6064359">7</Gestite> 
      <TypeContraception label="Type de contraception" element-id="6064367">spermicide</TypeContraception> 
      <Parite label="Parité" element-id="6064361">2</Parite> 
      <AntecNeoMammFam label="Antécédents néoplaise mammaire familiale" element-id="6064260">non</AntecNeoMammFam> 
      <AMA label="Allaitement maternel antérieur" element-id="6143942">oui</AMA> 
      <AgeMenop label="Age ménopause (ans)" element-id="6064364">45</AgeMenop> 
      <CyclesRegu label="Cycles réguliers" element-id="6064363">oui</CyclesRegu> 
    </AntecGyn>
    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
    20
    21
    22
    23
    24
    25
    26
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
    <html>
    <head>
    <body>
      <table>
    	<tbody>
    	  <xsl:for-each select="//AntecGyn/*">
    		<tr>
    		  <td>
    			<b><xsl:value-of select="@label"/></b>
    		  </td>
    		  <td>
    			<xsl:value-of select="."/>
    		  </td>
    		</tr>
    	  </xsl:for-each>
    	</tbody>
      </table>
    </body>
    </head>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    Actuellement, la transformation XSL donne en sortie ceci :


    Ce que j'aimerais faire, c'est arriver à ceci :


    Donc dans mon <xsl:for-each> il faudrait que j'ajoute une condition qui permette d'ignorer les noeuds "Gestite" et "Parite" du noeud père "AntecGyn" et qui continue d'afficher les autres noeuds fils de ce noeud père...

    Merci d'avance pour votre aide !

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Ajouter un prédicat sur le XPATH, pour dire que le nom du nœud ne doit pas être Gestite ou Parite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:for-each select="//AntecGyn/*[name()!='Gestite' and name()!='Parite']">
    Une autre approche aurait été d'englober tout ça d'un xsl:if vérifiant que l'élément n'est ni Gestite ni Parite.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 47
    Points : 36
    Points
    36
    Par défaut
    Merci pour ta réponse !

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

Discussions similaires

  1. [XSLT] Chemin très tarabiscoté dans un xsl:for-each
    Par strat0 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 14/09/2007, 16h40
  2. [XSLT] Croiser plusieurs xsl:for-each avec deux documents XML
    Par strat0 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/06/2007, 16h10
  3. [XSLT][débutant] Problème xsl:value-of dans xsl:for-each
    Par Choubie dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 09/05/2007, 16h30
  4. Réponses: 5
    Dernier message: 27/03/2007, 18h39
  5. [XSLT] combiner xsl:for-each-group et tokenize() ?
    Par Goulu dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/12/2006, 15h54

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