E
Eliza Zadura
The following question is about XPath and context, as I am not sure I'm
grasping the concept entirely and this is causing me some problems while
working on my XSL transformation.
I have checked the XPath specification and am somewhat familiar with the
different addressing mechanisms. What confuses me is the context when
using templates and various (nested) <xsl:for-each>, <xsl:if> and
<xsl:when> expressions.
For example, say I have a named template where test-param is the value
of a certain node.
<xsl:template name="test_temp">
<xsl
aram name="test_param"/>
...
...
<xsl:for-each select="[some other node]">
<!--here, I assume the context is that of [some other node], and not the
node represented by test_param?-->
<xsl:if test="[yet another node]">
<!--What about the context here, is it that of [yet another node]?-->
</xsl:if>
</xsl:for-each>
<!--And here, am I back to the original context, the one defined by the
test_param?-->
</xsl:template>
And so on, and so forth...
To put it briefly: Does every expression that evaluates a set of nodes
change the context to that particular set, thus enabling me to use ./
while referring to attributes or other subnodes of that node?
grasping the concept entirely and this is causing me some problems while
working on my XSL transformation.
I have checked the XPath specification and am somewhat familiar with the
different addressing mechanisms. What confuses me is the context when
using templates and various (nested) <xsl:for-each>, <xsl:if> and
<xsl:when> expressions.
For example, say I have a named template where test-param is the value
of a certain node.
<xsl:template name="test_temp">
<xsl
...
...
<xsl:for-each select="[some other node]">
<!--here, I assume the context is that of [some other node], and not the
node represented by test_param?-->
<xsl:if test="[yet another node]">
<!--What about the context here, is it that of [yet another node]?-->
</xsl:if>
</xsl:for-each>
<!--And here, am I back to the original context, the one defined by the
test_param?-->
</xsl:template>
And so on, and so forth...
To put it briefly: Does every expression that evaluates a set of nodes
change the context to that particular set, thus enabling me to use ./
while referring to attributes or other subnodes of that node?