Subject: RE: [xsl] Comparing nodes in axis From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 17 Dec 2004 17:20:22 -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? You are comparing the nodes for equality, whereas your description suggests you want to compare them for identity. To compare whether $A and $B are the same node, use ($A is $B) in XPath 2.0, or (count($A|$B)=1) in XPath 1.0. Michael Kay http://www.saxonica.com/ > > 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Comparing nodes in axis, xptm | Thread | Re: [xsl] Comparing nodes in axis, xptm |
RE: [xsl] Where is the attribute?, Michael Kay | Date | RE: [xsl] Comparing nodes in axis, Michael Kay |
Month |