Re: [xsl] position() of parent node

Subject: Re: [xsl] position() of parent node
From: "J.Pietschmann" <j3322ptm@xxxxxxxx>
Date: Mon, 17 Nov 2003 22:15:11 +0100
Robert Ogden wrote:
		<xsl:for-each select="imageLink">
			<xsl:if test="chapter[position() != 21]">
...
What I am getting at, is that I want to output all text links (easy
enough), and all images for chapters unless the chapter is 21 (which
happens also to be last, which I tried <xsl:if test="chapter[position()
!= last()]">)

Well, the <chapter> is, as you noted, the parent of imageLink, therefore the XPath "chapter[position() != 21]" inside the for-each wont select anything (independently of the predicate, because there is no <chapter there).

You can try to count the previous siblings of the chapter. Of
course, you'll have to navigate to the parent first:
 <xsl:if test="parent::chapter[count(previous-sibling::chapter)=21]">
or if you want the last (no following sibling chapter):
 <xsl:if test="parent::chapter[not(following-sibling::chapter)]">

J.Pietschmann



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


Current Thread