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 :

sélection d'un nombre de balises freres variables


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut sélection d'un nombre de balises freres variables
    bonjour a tous,


    je dispose d'un fichier xml de la forme suivante :

    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
    <document>
      <titre>titre1</titre>
      <lettrine>lettrine</lettrine>
      <texte>texte</texte>
      <texte>texte</texte>
      <texte>texte</texte>
      <separateur>S</separateur>
      <titre>titre2</titre>
      <lettrine>lettrine</lettrine>
      <texte>texte</texte>
      <separateur>S</separateur>
      <titre>titre3</titre>
      <lettrine>lettrine</lettrine>
      <texte>texte</texte>
      <texte>texte</texte>
      <texte>texte</texte>
      <texte>texte</texte>
      <separateur>S</separateur>
    </document>
    Toutes les balises dans le document sont au meme niveau et le nombre de balises texte une lettrine et le séparateur qui la suit est variable.

    je cherche a mettre en place un template qui me ferait la concatenation des balises texte comprises entre une lettrine et le séparateur qui suit mais je n'arrive pas a faire une sélection correcte de mes balises texte.

    si quelqu'un a une idée, je suis preneur!

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    un petit défi pour bien démarrer la journée
    in.xml
    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
     
    <document>
    <titre>titre1</titre>
    <lettrine>lettrine</lettrine>
    <texte>texte</texte>
    <texte>texte</texte>
    <texte>texte</texte>
    <separateur>S</separateur>
    <titre>titre2</titre>
    <lettrine>lettrine</lettrine>
    <texte>texte</texte>
    <separateur>S</separateur>
    <titre>titre3</titre>
    <lettrine>lettrine</lettrine>
    <texte>texte</texte>
    <texte>texte</texte>
    <texte>texte</texte>
    <texte>texte</texte>
    <separateur>S</separateur>
    </document>
    in.xsl
    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
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output 
      		encoding="ISO-8859-15"
      		method="xml"
      		indent="yes" />
     
    	<xsl:template match="/">
    		<result>
    			<xsl:apply-templates select="//lettrine"/>
    		</result>
    	</xsl:template>
     
    	<xsl:template match="lettrine">
    		<lettrine>
    		<xsl:value-of select="."/>
    		<xsl:variable name = "B" >
    			<xsl:for-each select="./following-sibling::*">
    				<xsl:if test="name() = 'separateur'">
          					<xsl:value-of select="position()"/><xsl:text>;</xsl:text>
    				</xsl:if>
    			</xsl:for-each>
    		</xsl:variable>  
    		<xsl:variable name = "C" >
    		<xsl:value-of select="substring-before($B,';')"/>
    		</xsl:variable>  
     
    		<xsl:apply-templates select="./following-sibling::*[position() &lt; $C]"/>
    		</lettrine>
    	</xsl:template>
     
     
    </xsl:stylesheet>
    et voila

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/02/2007, 22h25
  2. Afficher un nombre de balise div en fonction du choix de l'utilisateur
    Par Analfabete dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 11/01/2007, 18h49
  3. nombre de chiffres significatifs variable
    Par kamouminator dans le forum C
    Réponses: 4
    Dernier message: 07/11/2006, 14h14
  4. Réponses: 2
    Dernier message: 08/02/2006, 16h54
  5. [XPATH] Nombres de noeuds freres ?
    Par DemonKN dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 28/02/2005, 12h29

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