[xsl] Comparing nodes in axis

Subject: [xsl] Comparing nodes in axis
From: xptm <xptm@xxxxxxx>
Date: Fri, 17 Dec 2004 16:43:00 +0000
Is it correct to use expressions like these ones:

                       <xsl:if test="parent::menu=(//menu)[$pos]">
                           <xsl:text>1</xsl:text>
                       </xsl:if>

                      <xsl:if test="ancestor::menu=(//menu)[$pos]">
                           <xsl:text>0</xsl:text>
                       </xsl:if>

to compare the context node with another known node?

In the first example i'm saying

"If the context node, the one now being processed, is the parent of the menu node at absolute position $pos"

and

"If the the menu node at absolute position $pos is one of the ancestors of the context node"?

It is apparently working OK, but i never saw such comparisons being made...


As a side question, i tend to make things like


                       <xsl:if test="parent::menu=(//menu)[$pos]">
                           <xsl:text>1</xsl:text>
                       </xsl:if>
                       <xsl:if test="not(parent::menu=(//menu)[$pos])">
                           <xsl:text>0</xsl:text>
                       </xsl:if>

Is there any drawback in doing this insted of choose/when/otherwise?

Thanks.

Current Thread