Subject: Re: [xsl] finding position() in xpath 1.0 From: David Carlisle <davidc@xxxxxxxxx> Date: Mon, 19 Mar 2007 13:08:10 GMT |
I think I mis read your requirement. the code I posted works so long as there is at most one node with test="yes. If you have multiple such nodes and need to select the preceding cousin of all of them, Then... //CELL[@test='yes']/../preceding-sibling::ROW[1]/CELL[position()=count(../following-sibling::ROW[1]/CELL[@test='yes']/preceding-sibling::CELL)+1] David <ROWS> <ROW> <CELL id="a"/> <CELL id="b"/> <!-- select this and only this--> <CELL id="c"/> </ROW> <ROW> <CELL/> <CELL test="yes"/> <CELL/> </ROW> <ROW> <CELL/> <CELL/> <CELL/> </ROW> <ROW> <CELL id="aa"/> <CELL id="bb"/> <!-- select this and only this--> <CELL id="cc"/> </ROW> <ROW> <CELL/> <CELL test="yes"/> <CELL/> </ROW> <ROW> <CELL/> <CELL/> <CELL/> </ROW> </ROWS> <xsl:template match="/"> <xsl:copy-of select="//CELL[@test='yes']/../preceding-sibling::ROW[1]/CELL[position()=count(../following-sibling::ROW[1]/CELL[@test='yes']/preceding-sibling::CELL)+1]"/> </xsl:template> </xsl:stylesheet> $ saxon count.xml count.xsl <?xml version="1.0" encoding="utf-8"?><CELL id="b"/><CELL id="bb"/>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] finding position() in xpa, David Carlisle | Thread | Re: [xsl] finding position() in xpa, Frank Marent |
Re: [xsl] finding position() in xpa, Abel Braaksma | Date | Re: [xsl] finding position() in xpa, Abel Braaksma |
Month |