Subject: RE: [xsl] Template matching preceding-sibling. From: "Scott Trenda" <Scott.Trenda@xxxxxxxx> Date: Thu, 8 Nov 2007 13:14:51 -0600 |
Hey Steve, Looks like you've solved the problem, but here's a quick pointer. Start learning to avoid !=, and start using not() instead. Since comparison operators on node-sets are combinatoric, your first comparison says "if there are any preceding-sibling::activity nodes that ARE NOT equal to my child::activity node", instead of "if there are NOT any preceding-sibling::activity nodes equal to my child::activity node", which is what I believe you're intending. Use the following XPath instead: Rec[not(activity = preceding-sibling::Rec/activity)] not() is usually the safest bet, especially when node-sets come into the mix. ~ Scott -----Original Message----- From: Steve [mailto:subsume@xxxxxxxxx] Sent: Thursday, November 08, 2007 12:17 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Template matching preceding-sibling. I'm sorry, but isn't the first <Rec> in my XML the preceding-sibling of the second <Rec> ? -Steve On Nov 8, 2007 1:13 PM, <cknell@xxxxxxxxxx> wrote: > Your template matches both <Rec> elements, so you get two instances of "Ello xslers." in your output. > > Your template matches and <Rec> element with an <activity> child element that doesn't have preceding-sibling <Rec>. Since both <Rec> elements have <activity> child elements, and since none of the <activity> elements has a preceding-sibling of ANY kind, you are matching both <Rec>s. > -- > Charles Knell > cknell@xxxxxxxxxx - email > > > > > -----Original Message----- > From: Steve <subsume@xxxxxxxxx> > Sent: Thu, 8 Nov 2007 12:59:01 -0500 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Template matching preceding-sibling. > > I'm missing something fundamental, what is it? > > <xsl:template match="Rec[activity != preceding-sibling::Rec/activity > or not(preceding-sibling::Rec)]"> > Ello xslers. > </xsl:template> > > <xml> > <Rec> > <activity>hi</activity> > </Rec> > <Rec> > <activity>hi</activity> > </Rec> > </xml> > > ---- > > Above should only print anything once, but I'm getting it each time. > What am I not getting? > > -Steve
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Template matching precedi, Steve | Thread | Re: [xsl] Template matching precedi, Steve |
RE: [xsl] extending xsl with javasc, Scott Trenda | Date | Re: [xsl] Template matching precedi, Steve |
Month |