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 :

[XPATH]Récapitulatif de valeurs texte


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 14
    Points
    14
    Par défaut [XPATH]Récapitulatif multi-niveaux
    Bonjour,

    Pour rentrer dans le vif du sujet, j'ai une base de donnée qui me permet d'exporter mon data en XML, avec un arbre de cette forme :
    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
     
    <XMLRESULT>
    	<RESULTSET>
    		<ROW>
    			<COL>
    				<DATA></DATA>
    			</COL>
    			<COL>
    				<DATA></DATA>
    			</COL>
    			<COL>
    				<DATA></DATA>
    			</COL>
    			<COL>
    				<DATA></DATA>
    			</COL>
    			<COL>
    				<DATA></DATA>
    			</COL>
    		</ROW>
    		<ROW>
    		...
    		</ROW>
    	</RESULTSET>
    </XMLRESULT>
    Le but de cette extraction est de générer un document XHTML 1.0 Strict pour présenter les données en récapitulant les données redondantes, sous forme de liste. Mon document final adopte cette structure :
    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
     
    <h2>Valeur de ROW[1]/COL[1]/DATA</h2>
    <h3>Valeur de ROW[1]/COL[2]/DATA</h3>
    <h4>Valeur de ROW[1]/COL[3]/DATA</h4>
    <ul>
    	<li>Valeur de ROW[1]/COL[4]/DATA
    		<ul>
    			<li>Valeur de ROW[1]/COL[5]/DATA</li>
    			<li>Valeur de ROW[2]/COL[5]/DATA</li>
    		</ul>
    	</li>
    	<li>Valeur de ROW[3]/COL[4]/DATA
    		<ul>
    			<li>Valeur de ROW[3]/COL[5]/DATA</li>
    			<li>Valeur de ROW[4]/COL[5]/DATA</li>
    			<li>Valeur de ROW[5]/COL[5]/DATA</li>
    		</ul>
    	</li>
    </ul>
    <h2>Valeur de ROW[6]/COL[1]/DATA</h2>
    <h3>Valeur de ROW[6]/COL[2]/DATA</h3>
    <h4>Valeur de ROW[6]/COL[3]/DATA</h4>
    <ul>
    	<li>Valeur de ROW[6]/COL[4]/DATA
    		<ul>
    			<li>Valeur de ROW[6]/COL[5]/DATA</li>
    			<li>Valeur de ROW[9]/COL[5]/DATA</li>
    		</ul>
    	</li>
    	<li>Valeur de ROW[8]/COL[4]/DATA
    		<ul>
    			<li>Valeur de ROW[8]/COL[5]/DATA</li>
    			<li>Valeur de ROW[7]/COL[5]/DATA</li>
    			<li>Valeur de ROW[10]/COL[5]/DATA</li>
    		</ul>
    	</li>
    </ul>
    Dans cet exemple, la première rubrique (COL[1]/DATA) a une valeur identique pour les cinq premiers enregistrements (ROW). Les différentes valeurs ne sont pas triées (text) lors de l'export, j'imagine qu'il faut commencer par là (xsl:sort) pour pouvoir comparer les valeurs à chaque niveau de l'arbre, non ? Lors de mes tests, ça n'a rien donné, je suppose que je me plante dans le XPATH, mais je ne sais pas où...

    Je ne suis pas familier avec le XSL(T), j'ai écumé quelques tuto mais sans trouver quelle méthode utiliser

    Auriez-vous des pistes pour m'en sortir ? Merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 14
    Points
    14
    Par défaut
    Je viens de voir la FAQ XML . Cette piste ressemble à ce que j'essaye de faire... je vais tester ça.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 14
    Points
    14
    Par défaut Ça avance...
    Bon, en suivant le post de la FAQ sur la méthode Muench et en le transposant, j'arrive à afficher mon <h2> en évitant les doublons.
    Dans l'exmple donné, le résultat affiche la valeur de <a> puis celle de <b> associée. Chez moi, je n'arrive à afficher que l'équivalent de <a>...

    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
     
    <xsl:key name="champ" match="COL[1]/DATA" use="."/>
    	<xsl:template match="fmp:XMLRESULT">
    		<html>
    			<head>
    				<script type="text/javascript" src="script.js">
    				</script>
    				<link rel="stylesheet" type="text/css" href="screen.css"></link>
    			</head>
    			<body>
    				<xsl:apply-templates select="RESULTSET/ROW/COL[1]/DATA[generate-id(.)=generate-id(key('champ',.)[1])]"/>
     
     
     
    			</body>
    		</html>
    	</xsl:template>
    	<xsl:template match="COL[1]/DATA">
    		<h2>
    			<xsl:copy-of select="."/>
    			<xsl:apply-templates select="//COL[2]/DATA[../COL[1]/DATA=current()]"/>
    		</h2>
    	</xsl:template>
    	<xsl:template match="COL[2]/DATA">
    		<xsl:copy-of select="."/>
    	</xsl:template>
    </xsl:stylesheet>
    Je ne comprends pas où ça bloque

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 14
    Points
    14
    Par défaut
    Salut,

    Je continue mon monologue, j'ai réussi à afficher les autres données, mais là mon code pêche par l'excès inverse : il m'affiche toutes les données, même celles qui ne sont pas liées au noeud en cours Encore XPATH ?

    Pour info :
    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:key name="repere" match="fmp:COL[5]/fmp:DATA" use="."/>
    	<xsl:key name="objet" match="fmp:COL[4]/fmp:DATA" use="."/>
    	<xsl:key name="sujet" match="fmp:COL[3]/fmp:DATA" use="."/>
    	<xsl:key name="approche" match="fmp:COL[2]/fmp:DATA" use="."/>
    	<xsl:key name="champ" match="fmp:COL[1]/fmp:DATA" use="."/>
    	<xsl:template match="fmp:FMPXMLRESULT">
    		<html>
    			<head>
     
    				<link rel="stylesheet" type="text/css" href="screen.css"></link>
    			</head>
    			<body>
    			<xsl:for-each select="//fmp:COL[1]/fmp:DATA[generate-id(.) = generate-id(key('champ', .)[1])]">
    				<xsl:sort select="."/>
    				<h2><xsl:value-of select="."/></h2>
    					<xsl:for-each select="//fmp:COL[2]/fmp:DATA[generate-id(.) = generate-id(key('approche', .)[1])]">
    						<xsl:sort select="."/>
    							<h3><xsl:value-of select="."/></h3>
    								<xsl:for-each select="//fmp:COL[3]/fmp:DATA[generate-id(.) = generate-id(key('sujet', .)[1])]">
    								<xsl:sort select="."/>
    								<h4><xsl:value-of select="."/></h4>
    									<xsl:for-each select="//fmp:COL[4]/fmp:DATA[generate-id(.) = generate-id(key('objet', .)[1])]">
    										<xsl:sort select="."/>
    											<ul>
    												<xsl:attribute name="class">
    													<xsl:text>navtree</xsl:text>
    												</xsl:attribute>
    												<li><xsl:value-of select="."/>
    													<xsl:for-each select="//fmp:COL[5]/fmp:DATA[generate-id(.) = generate-id(key('repere', .)[1])]">
    														<xsl:sort select="."/>
    														<ul>
    															<li><xsl:value-of select="."/></li>
    														</ul>
    													</xsl:for-each>
    												</li>
    											</ul>
    								</xsl:for-each>
    							</xsl:for-each>
    					</xsl:for-each>
    				</xsl:for-each>
    			</body>
    		</html>
    	</xsl:template>
     
    </xsl:stylesheet>
    J'hallucine quand même de ne pas retrouver d'exemples de ce genre sur la toile.. pourtant, c'est pas faute de ne pas avoir cherché.

    a+

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 14
    Points
    14
    Par défaut Merci pour la participation
    Merci pour les pistes, le problème venait bien du XPATH.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 14
    Points
    14
    Par défaut
    Hello

    Je reviens à la charge, mon problème n'étant que partiellement résolu, en fait.

    J'essaye de regrouper mes listes ("Titre liste"+"Elément liste") en fonction des critères de "Titre"+"chapitre"+"sous-chapitre". Or actuellement, le regroupement ne se fait que sur le critère "Titre Liste" et ne tient pas compte de ses frangins.

    Le XML brut (issu de filemaker) :
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    <XMLRESULT>
    	<RESULTSET>
    		<ROW>
    			<COL>
    				<DATA>Titre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Sous Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Titre Liste 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Element Liste 1</DATA>
    			</COL>
    		</ROW>
    		<ROW>
    			<COL>
    				<DATA>Titre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Sous Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Titre Liste 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Element Liste 2</DATA>
    			</COL>
    		</ROW>
    		<ROW>
    			<COL>
    				<DATA>Titre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Sous Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Titre Liste 2</DATA>
    			</COL>
    			<COL>
    				<DATA>Element Liste 3</DATA>
    			</COL>
    		</ROW>
    		<ROW>
    			<COL>
    				<DATA>Titre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Sous Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Titre Liste 2</DATA>
    			</COL>
    			<COL>
    				<DATA>Element Liste 4</DATA>
    			</COL>
    		</ROW>
    		<ROW>
    			<COL>
    				<DATA>Titre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Chapitre 2</DATA>
    			</COL>
    			<COL>
    				<DATA>Sous Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Titre Liste 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Element Liste 1</DATA>
    			</COL>
    		</ROW>
    		<ROW>
    			<COL>
    				<DATA>Titre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Chapitre 2</DATA>
    			</COL>
    			<COL>
    				<DATA>Sous Chapitre 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Titre Liste 1</DATA>
    			</COL>
    			<COL>
    				<DATA>Element Liste 2</DATA>
    			</COL>
    		</ROW>
     
    	</RESULTSET>
    </XMLRESULT>
    Le XSL tel qu'il est actuellement :
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet 
    	exclude-result-prefixes="fmp"
    	xmlns:fmp="http://www.filemaker.com/fmpxmlresult"
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    	version="1.0">
    <xsl:output
    	method="html"
    	encoding="ISO-8859-1"
    	doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
    	doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    	indent="yes" />
     
    	<xsl:key name="objet" match="fmp:COL" use="."/>
    	<xsl:variable name="group" select="fmp:RESULTSET/fmp:ROW/fmp:COL"/>
    	<xsl:template match="fmp:FMPXMLRESULT">
    		<html>
    			<head>
    				<script type="text/javascript" src="script.js">
    				</script>
    				<link rel="stylesheet" type="text/css" href="screen.css"></link>
    			</head>
    			<body>
    				<xsl:apply-templates select="fmp:RESULTSET/fmp:ROW/*[generate-id(.)=generate-id(key('objet',.)[1])]"/>
    			</body>
    		</html>
    	</xsl:template>
    	<xsl:template match="fmp:COL[1]">
    		<h2>
    			<xsl:copy-of select="."/>
     
    		</h2>
    	</xsl:template>
    		<xsl:template match="fmp:COL[2]">
    		<h3>
    			<xsl:copy-of select="."/>
     
    		</h3>
    	</xsl:template>
    	<xsl:template match="fmp:COL[3]">
    		<h4>
    			<xsl:copy-of select="."/>
     
    		</h4>
    	</xsl:template>
    	<xsl:template match="fmp:COL[4]">
    		<ul>
    			<li>
    				<xsl:copy-of select="."/>
    			</li>
    		</ul>
    	</xsl:template>
    </xsl:stylesheet>
    Et pour finir, le html que j'aimerai 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
     
    <h2>Titre 1</h2>
    <h3>Chapitre 1</h3>
    <h4>Sous Chapitre 1</h4>
    <ul>
    	<li>Titre Liste 1
    		<ul>
    			<li>Element Liste 1</li>
    			<li>Element Liste 2</li>
    		</ul>
    	</li>
    	<li>Titre Liste 2
    		<ul>
    			<li>Element Liste 3</li>
    			<li>Element Liste 4</li>
    		</ul>
    	</li>
    </ul>
    <h2>Titre 1</h2>
    <h3>Chapitre 2</h3>
    <h4>Sous Chapitre 1</h4>
    <ul>
    	<li>Titre Liste 1
    		<ul>
    			<li>Element Liste 1</li>
    			<li>Element Liste 2</li>
    		</ul>
    	</li>
    	<li>Titre Liste 2
    		<ul>
    			<li>Element Liste 3</li>
    			<li>Element Liste 4</li>
    		</ul>
    	</li>
    </ul>
    Actuellement, j'ai un résultat qui ressemble à ça :
    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
     
    <h2>Titre 1</h2>
    <h3>Chapitre 1</h3>
    <h4>Sous Chapitre 1</h4>
    <ul>
    	<li>Titre Liste 1
    		<ul>
    			<li>Element Liste 1</li>
    			<li>Element Liste 2</li>
    		</ul>
    	</li>
    	<li>Titre Liste 2
    		<ul>
    			<li>Element Liste 3</li>
    			<li>Element Liste 4</li>
    		</ul>
    	</li>
    </ul>
    <h2>Titre 1</h2>
    <h3>Chapitre 2</h3>
    <h4>Sous Chapitre 1</h4>
    Il me semblait qu'il est possible de signifier plusieurs noeuds dans le match du xsl:key avec l'opérateur |, mais mes tests n'ont abouti à rien

    Ça fait plusieurs jours que je suis là-dessus, je commence un peu à désespérer...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 14
    Points
    14
    Par défaut
    C'est infaisable ?

  8. #8
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Je ne suis pas fan de la méthode Muench et j'évite toujours de l'utiliser pourvu que les volumes (pb de performances) le permettent. Avez-vous une contrainte forte sur les volumes ???

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 14
    Points
    14
    Par défaut
    Je ne sais pas dans quelle mesure on peut qualifier ça de contrainte, mais on peut aisément admettre que le nombre d'enregistrements (cad, dans le html, d'élément de liste) tourne autours d'une centaine... en moyenne.

    Merci de vous pencher sur le problème. Je ne suis pas focalisé sur la méthode Muench, c'est juste qu'elle me semblait permettre ce genre de regroupements.

    Edit : J'ai aussi la possibilité de modifier le XML brut, en faisant un tri récapitulatif sur les premiers critères, ce qui a pour effet de laisser les premiers COL/DATA vides. Ça allège le fichier, mais je ne sais pas si ça aide. Autre info : je travail en local, pas en réseau... pour le moment. Merci

  10. #10
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Ah, les regroupements multi-niveaux...

    Citation Envoyé par citronized Voir le message
    Il me semblait qu'il est possible de signifier plusieurs noeuds dans le match du xsl:key avec l'opérateur |, mais mes tests n'ont abouti à rien
    Si tu veux employer la méthode Muench, ce n'est pas avec l'union (avec |) qu'il faut construire tes clés, mais par concaténation avec concat().
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
        <xsl:key name="groupement-titres" match="ROW" use="concat(COL[1]/DATA, COL[2]/DATA, COL[3]/DATA)" />
        <xsl:key name="groupement-listes" match="ROW" use="concat(COL[1]/DATA, COL[2]/DATA, COL[3]/DATA, COL[4]/DATA)"/>
        <xsl:template match="XMLRESULT">
            <result>
                <xsl:for-each select="//ROW[generate-id() = generate-id(key('groupement-titres', concat(COL[1]/DATA, COL[2]/DATA, COL[3]/DATA))[1])]">
                    <xsl:variable name="groupe-titre" select="concat(COL[1]/DATA, COL[2]/DATA, COL[3]/DATA)"/>
                    <h2><xsl:value-of select="COL[1]/DATA"/></h2>
                    <h3><xsl:value-of select="COL[2]/DATA"/></h3>
                    <h4><xsl:value-of select="COL[3]/DATA"/></h4>     
                    <ul>                
                        <xsl:for-each select="key('groupement-titres', $groupe-titre)[generate-id() = generate-id(key('groupement-listes', concat($groupe-titre, COL[4]/DATA))[1])]">
                            <xsl:variable name="titre-liste" select="COL[4]/DATA"/>
     
                                <li><xsl:value-of select="$titre-liste"/>
                                    <ul>
                                        <xsl:for-each select="key('groupement-listes', concat($groupe-titre, $titre-liste))">
                                            <li><xsl:value-of select="COL[5]/DATA"/></li>
                                        </xsl:for-each>
                                    </ul>
                                </li>
                        </xsl:for-each>
                    </ul>                
                </xsl:for-each>
            </result>
        </xsl:template>
    </xsl:stylesheet>
    Il est important de noter que cette méthode ne fonctionne que si la concaténation de tes clés n'entraine pas d'ambiguïtés ; si ce n'est pas le cas, il faudra intercaler entre chacune des composantes de la clé un caractère qui ne se retrouve pas dans ces dernières.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 14
    Points
    14
    Par défaut

    J'en attendais pas tant ! Merci GrandFather
    Je ne connaissais effectivement pas "concat", ça m'aurait bien aidé, même si je vois que ton code est très intéressant. Je vais continuer à le parcourir, maintenant que ma transformation marche au poil !

    Merci !

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

Discussions similaires

  1. [VBA-W]prendre des valeurs "texte" dans Excel
    Par teromah dans le forum VBA Word
    Réponses: 12
    Dernier message: 14/06/2007, 16h20
  2. Réponses: 10
    Dernier message: 30/11/2006, 23h06
  3. [JDOM] Comment recuperer des valeurs textes dans XML ?
    Par Battosaiii dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 03/11/2006, 13h38
  4. Changer la valeur text d'un ComboBox
    Par davels dans le forum Delphi
    Réponses: 13
    Dernier message: 12/10/2006, 13h22
  5. [XPath] WordML Recherche du texte
    Par fouhaa dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 10/10/2006, 12h09

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