Hello!
I have a problem, as you can guess. I am struggling to find the element
that is just before, and the element just after the current one.
What i am doing now for the element after the current one is :
following-sibling::*[position() = 1]
And this seems to work. But for the element just before, i tried
following-sibling::*[last()]
but this gives me the first (topmost) item instead of the last !
So i debugged with :
<xsl:variable name="prevcount">
<xsl:value-of select="count(preceding-sibling::*)" />
</xsl:variable>
<xsl:for-each select="preceding-sibling::*">
<xsl:element name="before">
<xsl:value-of select="."/> <!-- or name() -->
<xsl:value-of select="position()"/>
<xsl:if test="position() = $prevcount">
selected
</xsl:if>
</xsl:element>
</xsl:for-each>
And the "selected" text appears right next to the good element.
Then i tried the following to sum it up :
<xsl:variable name="prevcount">
<xsl:value-of select="count(preceding-sibling::*)" />
</xsl:variable>
<xsl:value-of select="preceding-sibling::*[position() = $prevcount]" />
But again, it give me the content of the first (topmost) node !!
What am i doing wrong ?! Is there a simpler way to get these "special" items ?
Any help would be greatly appreciated !
Nicolas