[xsl] Identify last node in nested nodeset with same name

Subject: [xsl] Identify last node in nested nodeset with same name
From: Mat Bergman <matbergman@xxxxxxxxx>
Date: Thu, 23 Jun 2005 19:26:19 -0700 (PDT)
I am working with XML data that shares the same
element name for each node set, for example:

<menu name="link1"/>
<menu name="link2">
     <menu name="link2a"/>
     <menu name="link2b"/>

My XSL stylesheet transforms this into an HTML
unordered list, like this:

I can't figure out how to identify the last
second-tier node (in this example "link2b") so that
the stylesheet can write the closing </ul> tag for the
nested list. I thought I would reference it with
something like <xsl:if test="/menu/menu[last()]">, but
my XPath must be incorrect because it fails.

I am currently writing the opening <ul> and closing
</li> tags for the nested list with this:

<xsl:template match="menu">
<xsl:if test="count(menu)>0">

<xsl:if test="count(menu)=0">

If I only knew how to identify the last node in
/menu/menu, I could easily write the closing tag.



Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 

Current Thread