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 :

Combinaisons de balises


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut Combinaisons de balises
    Bonjour à tous,

    J'ai un petit soucis pour comprendre comment associer différents noms et prénoms que peuvent avoir une personne. Je m'explique par un exemple :
    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
     
    <Personne id="1">
      <Details>
        <Nom type="Principal">
          <Valeurs>
            <Nom>TOTO</Nom>
            <Prenom>TITI</Prenom>
          </Valeurs>
        </Nom>
        <Nom type="Secondaire">
          <Valeurs>
            <Nom>TATA</Nom>
            <Prenom>TUTU</Prenom>
          </Valeurs>
        </Nom>
      </Details>
    </Personne>
    J'ai besoin de créer une balise <Nom type="Tertiaire"> qui va contenir les différentes combinaisons des noms/prénoms présentes pour la personne dans le fichier pour au final obtenir :
    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
     
    <Personne id="1">
      <Details>
        <Nom type="Principal">
          <Valeurs>
            <Nom>TOTO</Nom>
            <Prenom>TITI</Prenom>
          </Valeurs>
        </Nom>
        <Nom type="Secondaire">
          <Valeurs>
            <Nom>TATA</Nom>
            <Prenom>TUTU</Prenom>
          </Valeurs>
        </Nom>
        <Nom type="Tertiaire">
          <Valeurs>
            <Nom>TOTO</Nom>
            <Prenom>TITI</Prenom>
          </Valeurs>
          <Valeurs>
            <Nom>TOTO</Nom>
            <Prenom>TUTU</Prenom>
          </Valeurs>
          <Valeurs>
            <Nom>TATA</Nom>
            <Prenom>TITI</Prenom>
          </Valeurs>
          <Valeurs>
            <Nom>TATA</Nom>
            <Prenom>TUTU</Prenom>
          </Valeurs>
        </Nom>    
      </Details>
    </Personne>
    Voici le xsl que j'ai pour le moment généré :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="xml" indent="no" encoding="ISO-8859-1"/>
    	<!-- Recopie dans un premier temps tout le fichier xml d'origine -->
    	<xsl:template match="node() | @*">
    	 <xsl:copy>
    	  <xsl:apply-templates select="node() | @*"/>
    	 </xsl:copy>
    	</xsl:template>
     
    	<!-- On s'occupe maintenant du formatage de la balise "Tertiaire" -->
    	<xsl:template match="Details">		
    		<xsl:copy>	
    			<!-- On cree la balise <Name NameType="Tertiaire"> si cette derniere n'existe pas -->
    			<xsl:if test="not(Nom[@type = 'Tertiaire'])">
    				<Nom type="Tertiaire">
    					<Valeurs>	
    						<xsl:call-template name="Prenom"/>					
    						<xsl:call-template name="Nom"/>							
    					</Valeurs>
    				</Nom>	
    			</xsl:if>
     
    			<!-- On ecrit le resultat final -->
    			<xsl:for-each select="Nom">
    				<xsl:variable name="type" select="@type"/> 
    				<Nom type="{$type}">								
    					<xsl:for-each select="Valeurs">							
    						<xsl:copy>
    							<xsl:apply-templates select="node() | @*"/>
    						</xsl:copy>
    					</xsl:for-each>													
    				</Nom>			
    			</xsl:for-each>			
    		</xsl:copy>
    	</xsl:template>	
     
    	<xsl:template name="Prenom">
    		<xsl:for-each select="node() | @*">
    			<xsl:for-each select="Valeurs">
    				<xsl:if test="Prenom != ''">
    					<Prenom><xsl:value-of select="Prenom"/></Prenom>	
    				</xsl:if>
    			</xsl:for-each>
    		</xsl:for-each>
    	</xsl:template>
     
    	<xsl:template name="Nom">
    		<xsl:for-each select="node() | @*">
    			<xsl:for-each select="Valeurs">
    				<xsl:if test="Nom != ''">
    					<Nom><xsl:value-of select="Nom"/></Nom>	
    				</xsl:if>
    			</xsl:for-each>
    		</xsl:for-each>
    	</xsl:template>
    </xsl:stylesheet>
    Merci d'avance pour vos réponses/pistes de développements.

  2. #2
    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
    Pour commencer,

    - Le nouveau <Nom type="Tertiaire">, tu veux le placer après les <Nom> qui existent déjà. Tu ne peux donc pas le créer avant d'avoir copié ceux qui existent, bien sûr -_-°.

    - Ce nouveau <Nom type="Tertiaire"> est censé contenir plusieurs <Valeur>. Ça ne peut donc pas marcher si tu n'en crées qu'une seule, bien sûr -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Combinaison des balises JSP de struts avec JSTL?
    Par prugne dans le forum Struts 1
    Réponses: 0
    Dernier message: 09/03/2012, 14h58
  2. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29
  3. [Documentation][XSLT][XSLFO]Les balises xslfo
    Par Lydiane dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/08/2002, 11h31
  4. [XSLT] inclure du XSL dans une balise html
    Par iaa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/08/2002, 15h57
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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