On Thu, 5 Nov 2020 at 14:46, Martin Honnen martin.honnen@xxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Am 05.11.2020 um 15:11 schrieb Chris Papademetrious
> christopher.papademetrious@xxxxxxxxxxxx:
> > Ibm trying to better my understanding of bcurrent nodeb behavior in
> > XSLT, and I have a couple questions.
> >
> > 1. Which stylesheet elements select the current node b.b?
>
> The dot is used or usable in any XPath expression
> (https://www.w3.org/TR/xpath-31/#dt-dynamic-context) so I would suggest
> to rather look at XPath to understand the context item or context node
> as otherwise stuff like
> /items/item[cat[. = /categories/cat]]
> will not be understood.
>
>
> > As a novice, I get confused remembering when the current node
> > does/doesnbt change. Therebs also this, which Ibm trying to grasp:
> >
> > https://www.w3.org/TR/xslt-30/#func-current
> >
> > Whatbs a good mental model for remembering this?
> >
> > 2. Inside an <xsl:template> block, is there a function that returns the
> > current **template-matched** node?
>
> That is what the
> current()
> function does, I am currently not sure why you first cite it and then
> seem to ask for another function doing the job of the current() function.
>
>
No Christopher was correct, there is no function that does what he asks,
and you need to use a variable.
current() is the node at the beginning of the xpath not the surrounding
template.
Given
<xsl:template match="wibble">
<xsl:for-each select=".//zzz">
<xsl:value-of select=" something with current()"/>
then current() is the zzz node, and wibble is not accessible unless you
saved it in a variable before the for-each.
David
|