xsl-list
[Top] [All Lists]

Re: [xsl] finding position() in xpath 1.0

2007-03-19 05:42:16
Frank Marent wrote:
hi all

i have to find an xpath 1.0 expression (unfortunately no way around) that selects all elements CELL that have in the following ROW a CELL with an attribute @test='yes' *and* the same position.

<ROW>
  <CELL/>
  <CELL/>   <-- select this and only this
  <CELL/>
</ROW>
<ROW>
  <CELL/>
  <CELL test="yes"/>
  <CELL/>
</ROW>
<ROW>
  <CELL/>
  <CELL/>
  <CELL/>
</ROW>

phew. how can i do that in xpath 1.0? i tried this one:

//CELL[../following-sibling::*[1]/CELL[position()=count(current()/preceding-sibling::CELL)+1]/@text='yes']


Hi Frank, long time no see ;)
From withing 'ROW' scope, can you not simply use a variable? I.e.:

<xsl:variable name="pos" select="count(following-sibling::ROW[1]/CELL[(_at_)test='yes']/preceding-sibling::CELL) + 1" />
<xsl:apply-templates select="CELL[$pos]" />

not tested, however.

Cheers from Holland,
-- Abel Braaksma
  http://www.nuntia.nl

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--