bonjour
j'ai un xml et je veux x=1 et y=2 depuis c/@chemin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<root>
<a name="a1"><b name="b1"><value x="1" y="2"/></b></a>
<c chemin="a1/b1" chemin2="a1/b2">
</root>
j'ai essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<xsl:template match="/root/c">
pere  <xsl:value-of select="substring-before(@chemin,'/')"/>.
fils  <xsl:value-of select="substring-after(@chemin,'/')"/>.
cx    <xsl:value-of select="/root/a[@name=substring-before(@chemin,'/')]/b[@name=substring-after(@chemin,'/')]/value/@x"/>.
cy    <xsl:value-of select="/root/a[@name='a1']/b[@name='b1']/value/@y"/>.
</xsl:template>
et j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
pere  a1.
fils  b1.
cx    .
cy    2.
substring me renvoie bien a1 et b1
le select avec a1 et b1 en dure me renvoie bien la valeur (cy)
MAIS cx reste vide

Des rajout de {} et () un peut partout non rien données

pour la petit histoire, <b/> finit en <svg:rect/>+<svg:text/>
et <c/> en <svg:line x1 y1 x2 y2/> d'où les 2 chemin et l'impossibilité de les traiter à la volée dans <a/>

Quelqu'un sait il ce qui coince, ou comment s'y prendre autrement ?
parceque là je coince ... toute idée est la bien venue
merci