<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:template match="menu">
<meals>
<xsl:call-template name="menu">
<xsl:with-param name="items" select="menu-item"/>
<xsl:with-param name="o" select="/.."/>
</xsl:call-template>
</meals>
</xsl:template>
<xsl:template name="menu">
<xsl:param name="items"/>
<xsl:param name="o" />
<xsl:for-each select="$items[1]/value">
<xsl:choose>
<xsl:when test="../following-sibling::menu-item">
<xsl:call-template name="menu">
<xsl:with-param name="items" select="../following-sibling::menu-item"/>
<xsl:with-param name="o">
<xsl:copy-of select="$o"/>
<xsl:apply-templates select="."/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<meal>
<xsl:copy-of select="$o"/>
<xsl:apply-templates select="."/>
</meal>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<xsl:template match="value">
<xsl:element name="{../@name}"><xsl:value-of select="."/></xsl:element>
</xsl:template>
</xsl:stylesheet>
<menu>
<menu-item name="appetizer">
<value>Nachos</value>
<value>Potato skins</value>
</menu-item>
<menu-item name="entree">
<value>Chicken pot pie</value>
<value>Pasta</value>
<value>Steak and potatoes</value>
<value>Tacos</value>
</menu-item>
<menu-item name="dessert">
<value>Blueberry pie</value>
<value>Chocolate ice cream</value>
<value>Strawberry cheesecake</value>
</menu-item>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<meals>
<meal>
<appetizer>Nachos</appetizer>
<entree>Chicken pot pie</entree>
<dessert>Blueberry pie</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Chicken pot pie</entree>
<dessert>Chocolate ice cream</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Chicken pot pie</entree>
<dessert>Strawberry cheesecake</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Pasta</entree>
<dessert>Blueberry pie</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Pasta</entree>
<dessert>Chocolate ice cream</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Pasta</entree>
<dessert>Strawberry cheesecake</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Steak and potatoes</entree>
<dessert>Blueberry pie</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Steak and potatoes</entree>
<dessert>Chocolate ice cream</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Steak and potatoes</entree>
<dessert>Strawberry cheesecake</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Tacos</entree>
<dessert>Blueberry pie</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Tacos</entree>
<dessert>Chocolate ice cream</dessert>
</meal>
<meal>
<appetizer>Nachos</appetizer>
<entree>Tacos</entree>
<dessert>Strawberry cheesecake</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Chicken pot pie</entree>
<dessert>Blueberry pie</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Chicken pot pie</entree>
<dessert>Chocolate ice cream</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Chicken pot pie</entree>
<dessert>Strawberry cheesecake</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Pasta</entree>
<dessert>Blueberry pie</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Pasta</entree>
<dessert>Chocolate ice cream</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Pasta</entree>
<dessert>Strawberry cheesecake</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Steak and potatoes</entree>
<dessert>Blueberry pie</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Steak and potatoes</entree>
<dessert>Chocolate ice cream</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Steak and potatoes</entree>
<dessert>Strawberry cheesecake</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Tacos</entree>
<dessert>Blueberry pie</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Tacos</entree>
<dessert>Chocolate ice cream</dessert>
</meal>
<meal>
<appetizer>Potato skins</appetizer>
<entree>Tacos</entree>
<dessert>Strawberry cheesecake</dessert>
</meal>
</meals>
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
--~------------------------------------------------------------------
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>
--~--