[XPath][XSLT] recomposition de chemins
bonjour
j'ai un xml et je veux x=1 et y=2 depuis c/@chemin
Code:
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:
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:
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