[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: testing for last node in a list
Ann, >I am generating a list of ancestor nodes for a matched CLASS element. The XSL >calls this template to output the ancestors when a CLASS is matched. I want to >output a "|" character after each CLASS node, EXCEPT the last one. I am unable >to express the correct test for the last node in this list. I tried using ><xsl:if test="position()=last()">, but this statement returns true each time the >template is called. > >Is there another way to solve this? Try thinking in terms of 'if I just know about node X, what is is about node X that affects whether or not there is a | above or below me?' The answer is that all nodes have a | above them apart from the one at the top of the hierarchy. How can you tell if you are at the top of the hierarchy? Because you don't have a parent node. So, try: <!-- named template to do the hierarchy tracing --> <xsl:template match="CLASS" mode="hierarchy"> <xsl:if test="@SUPERCLASS"> <xsl:apply-templates select="key('classes', @SUPERCLASS)" mode="hierarchy"/> <xsl:text>|</xsl:text> </xsl:if> <br data="{@SUPERCLASS}"> <a href="{@NAME}.html"><xsl:value-of select="@NAME"/></a> </br> </xsl:template> Hope that helps, Jeni Dr Jeni Tennison Epistemics Ltd, Strelley Hall, Nottingham, NG8 6PE Telephone 0115 9061301 ? Fax 0115 9061304 ? Email jeni.tennison@xxxxxxxxxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|