|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Identify last node in nested nodeset with same nam
Mat,
Luckily, there's an easier and more "natural" way to do this -- don't write "tags", as you do, but create full-fledged elements. Using this, with recursion, yields a simple approach. With this input: <data>
<menu name="link1"/>
<menu name="link2">
<menu name="link2a"/>
<menu name="link2b"/>
</menu>
</data>This transform, using call-template: <?xml version="1.0" encoding="iso8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="/data">
<xsl:call-template name="write-menu">
<xsl:with-param name="items" select="menu"/>
</xsl:call-template></xsl:template> <xsl:template name="write-menu">
<xsl:param name="items" select="/.."/>
<ul>
<xsl:for-each select="$items">
<li>
<xsl:value-of select="@name"/>
<xsl:if test="menu">
<xsl:call-template name="write-menu">
<xsl:with-param name="items" select="menu"/>
</xsl:call-template>
</xsl:if>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>Produces: <?xml version="1.0" encoding="UTF-8"?>
<ul>
<li>link1</li>
<li>link2<ul>
<li>link2a</li>
<li>link2b</li>
</ul>
</li>
</ul>As an aside, if iterating over a set of nodes, last() in a test can identify the last node. Regards, --A From: Mat Bergman <matbergman@xxxxxxxxx> Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Identify last node in nested nodeset with same name Date: Thu, 23 Jun 2005 19:26:19 -0700 (PDT) _________________________________________________________________ Dont just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/
|
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
|

Cart








