|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Help using recursion on descendants of siblings
<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.
________________________________________________________________________
|
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








