Subject: Re: [xsl] Template matching preceding-sibling. From: Steve <subsume@xxxxxxxxx> Date: Thu, 8 Nov 2007 14:16:36 -0500 |
Excellent. Thank you I will do so. -Steve On Nov 8, 2007 2:14 PM, Scott Trenda <Scott.Trenda@xxxxxxxx> wrote: > 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, Scott Trenda | Thread | [xsl] Record count, Waqar Ali |
RE: [xsl] Template matching precedi, Scott Trenda | Date | Re: [xsl] creating elements and hie, Andreas Peter |
Month |