xsl-list
[Top] [All Lists]

Re: [xsl] Position() Function Using Filter

2011-10-28 09:11:50
On 28 October 2011 14:56, Lighton Phiri 
<lighton(_dot_)phiri(_at_)gmail(_dot_)com> wrote:
I am trying to figure out how to get the position of a particular node
after apply a filter. I am able to get the result after using the
XPath below, however, I can't seem to figure out how to get the
position of that node.

bpage = ASTRO_00007.JPG
books/book[substring-after(substring-after(substring-after(text(),
'/'), '/'), '/')=$bpage]

<books>
<book>books/physics/astronomy/ASTRO_00002.JPG</>
<book>books/physics/astronomy/ASTRO_00003.JPG</>
<book>books/physics/astronomy/ASTRO_00004.JPG</>
<book>books/physics/astronomy/ASTRO_00005.JPG</>
<book>books/physics/astronomy/ASTRO_00006.JPG</>
<book>books/physics/astronomy/ASTRO_00007.JPG</>
<book>books/physics/astronomy/ASTRO_00008.JPG</>
<book>books/physics/astronomy/ASTRO_00009.JPG</>
<book>books/physics/astronomy/ASTRO_00010.JPG</>
</books>

count(preceding-sibling::*) to count the number of preceding elements,
so add 1 to that and you get its position amongst its siblings.

Also, instead of the nested substrings, you can do:

book[ends-with(., $bpage)]

or

book[tokenize(., '/')[last()] eq $bpage]

-- 
Andrew Welch
http://andrewjwelch.com

--~------------------------------------------------------------------
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>
--~--