Subject: Re: finding position() in xpath 1.0
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Mon, 19 Mar 2007 13:40:20 +0100
|
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[@test='yes']/preceding-sibling::CELL)
+ 1" />
<xsl:apply-templates select="CELL[$pos]" />
not tested, however.
Cheers from Holland,
-- Abel Braaksma
http://www.nuntia.nl
|