On 8/22/06, corine amel zayanie <corine_amel(_at_)yahoo(_dot_)fr> wrote:
problem of result returned by variable
I explain my problem between <!-- -->
<xsl:output method="html" media-type="text/html; charset=ISO-8859-1"
version="4.0"/>
<xsl:template match="/">
<html>
<body>
<table border="0" width="*" >
<tr><th>Nombre noeud</th>
<th>Numero du A</th>
</tr>
<xsl:call-template name="doc">
<xsl:with-param name="requete" select="document('requete.xml')/requete"/>
</xsl:call-template>
The context node here is the root /
</table>
</body>
</html>
</xsl:template>
<xsl:template name ="doc" match="LISTE-A">
<xsl:param name="requete"/>
<xsl:call-template name="doc2">
<xsl:with-param name="requete" select="$requete"/>
<xsl:with-param name="varReq1" select=".//DEP = $requete/DEP and .//ANI=
$requete/ANI"/>
The context here is still the root / so .//DEP and .//ANI are document wide
</xsl:call-template>
</xsl:template>
<xsl:template name ="doc2" match="LISTE-A">
<xsl:param name="varReq1"/>
<xsl:param name="requete"/>
<xsl:value-of select=".//DEP = $requete/DEP and .//ANI= $requete/ANI"/>
<xsl:for-each select="//A">
The context node is now each A in the document
<xsl:choose>
<xsl:when test=".//DEP = $requete/DEP and .//ANI= $requete/ANI">
The test is now using DEP and ANI descendants of the context node
(which is <A>) so its only checking descendants of each <A> in the
document this time which is why you get a different result - do you
really mean to use ".//" and not just "//"?
Either way if you are checking the same global condition you should
really make it a global variable.
cheers
andrew
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--