Subject: Re: Simple XPath question From: "Nikita Ogievetsky" <nogievet@xxxxxxxxxxxx> Date: Mon, 22 Nov 1999 16:56:20 -0000 |
You are right. I did this in a rush and missed this case. The following constructs works with your fragment correctly: <xsl:for-each select="PERSON"> <xsl:if test="following-sibling::PERSON[current()/@lastname = ./@lastname and current()/@firstname = ./@firstname]"> <xsl:if test="not(preceding-sibling::PERSON[current()/@lastname = ./@lastname and current()/@firstname = ./@firstname])"> <xsl:copy-of select="."/> </xsl:if> </xsl:if> </xsl:for-each> applied to your fragment it gives: <PERSON firstname="fn1" lastname="ln1"/> Phil Lanch wrote: > Nikita Ogievetsky wrote: > > Given : > > <PERSON firstname="fn1" lastname="ln1"/> > > <PERSON firstname="fn2" lastname="ln2"/> > > <PERSON firstname="fn3" lastname="ln3"/> > > <PERSON firstname="fn2" lastname="ln2"/> > > <PERSON firstname="fn3" lastname="ln3"/> > > <PERSON firstname="fn4" lastname="ln4"/> > > <PERSON firstname="fn3" lastname="ln3"/> > > > > This worked properly in XT: > > <xsl:for-each > > select="PERSON[following-sibling::PERSON/@lastname = ./@lastname > > and following-sibling::PERSON/@firstname = > > ./@firstname > > and not(preceding-sibling::PERSON/@lastname = > > ./@lastname > > and preceding-sibling::PERSON/@firstname = > > ./@firstname)] "> > > <xsl:copy-of select="."/> > > </xsl:for-each> > > But given > > <PERSON firstname="fn1" lastname="ln2"/> > <PERSON firstname="fn3" lastname="ln1"/> > <PERSON firstname="fn1" lastname="ln1"/> > <PERSON firstname="fn1" lastname="ln1"/> > > it misses the pair. > Nikita Ogievetsky http://www.cogx.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Simple XPath question, Phil Lanch | Thread | Re: Simple XPath question, Phil Lanch |
Announce: Stylus XSL Editor Now Ava, Carl Sjogreen | Date | Re: Simple XPath question, Phil Lanch |
Month |