bonjour à tous, j'ai un petit souci alors je m'adresse à la communauté compétente.
je récupère un chemin xpath (via un formulaire) et je voudrais pour chaque élément du xpath faire un test sur un attribut du parent direct puis afficher les attributs des éléments du xpath (j'espère ne pas âtre trop flou).

voici un exemple de xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<AA>
    <BB b = "nord">
         <CC c="ok0" n="toto"/>
         <CC c="ok1" n="titi"/>
    </BB>
    <BB b= "sud">
         <CC c="ok2" n="toto"/>
         <CC c="ok3" n="tata"/>
    </BB>
</AA>
un xpath possible que je vais obtenir via le formulaire serait : AA/BB/CC
il selectionne donc ici tous les éléments CC


puis le code 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
 
//definir le parent 
<xsl:variable name="parent" select="concat($xpath, '/', 'parent::BB')" />
 
//evaluation (la synthaxe n'est pas correcte mais cela reflete ce que j'aimerais faire
<xsl:for-each select="dyn:evaluate($xpath)">
    <xsl:choose>
	<xsl:when test=" dyn:evaluate($parent)[@nom] = 'nord' "> // test @nom = 'nord'
		<xsl:value-of select="dyn:evaluate($xpath_final)[@nom]" />:nord<br /><br /> // affiche les attributs du xpath d'origine
 
	</xsl:when>
	<xsl:when test=" dyn:evaluate($parent)[@nom] = 'sud' "> // test @nom = 'sud'
		<xsl:value-of select="dyn:evaluate($xpath_final)[@nom]" />:sud<br /><br />
 
	</xsl:when>
    </xsl:choose>
    //...
</xsl:for-each>
ce que je voudrais afficher :
ok0:nord
ok1:nord
ok2:sud
ok3:sud

mais si j'ai un xpath tel que AA/BB/CC[@n='toto']

je voudrais afficher
ok0:nord
ok2:sud

à savoir que là c'est tres simplifié !
(en réalité ce qui sera afficher est en fait du svg en fonction des attributs du xml mais ce sera déjà un bon début ^^)

en fait je me demande comment identifier les differents xpath dans cette boucle et si c'est possible ?

merci à tous