PENNEC Vincent wrote:
>
> Bonjour,
>
> J'ai un problème avec XSLT (msxml3)
> je cherche à faire <xsl:value-of select="//noeud_reference[@id=noeud_actuel/@id]"/> ; cela ne fonctionne pas. je réussis à contourner le problème en passant par une fonction.
Bonjour,
voici une version qui fonctionne sous msxml4 (j'imagine pour msxml3
aussi ?). Le document xml :
<?xml version="1.0" encoding="UTF-8"?>
<lot>
<parametre id="1375">Sodium</parametre>
<parametre id="1385">Nitrates</parametre>
<arbre>
<feuille>
<parm idref="1375"/>
</feuille>
</arbre>
</lot>
J'ai changé l'attribut de parm pour "idref", car cela me parait bizarre
que deux elements partagent le meme id (a piori un id est unique).
La feuille XSLT :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>test id</title>
</head>
<body>
<xsl:apply-templates select="lot/arbre"/>
</body>
</html>
</xsl:template>
<xsl:template match="feuille">
id=<xsl:value-of select="./parm/@idref"/>
<br/>
parametre(1)=<xsl:value-of select="//parametre[@id=1375]"/>
<br/>
parametre(2)=<xsl:value-of
select="//parametre[@id=current()/parm/@idref]"/>
</xsl:template>
</xsl:stylesheet>
Pour parametre(2) j'ai juste complété le Xpath ave current() qui indique
que le chemin commence à partir du noeud courant (ici "feuille").
alex
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Mon Jul 21 14:05:14 2003