Bob's Burgers: Difference between revisions
From ICO wiki
Jump to navigationJump to search
Line 488: | Line 488: | ||
==XSLT XML== | ==XSLT XML== | ||
<pre> | <pre> | ||
<?xml version="1.0" encoding="utf-8"?> | |||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> | |||
<xsl:output method="xml" indent="yes"/> | |||
<xsl:template match="/Menu"> | |||
<html> | |||
<style> | |||
table { | |||
border-collapse: collapse; | |||
margin: 25px; | |||
margin-bottom: 50px; | |||
} | |||
th, td { | |||
border: 1px solid #ccc; | |||
padding: 10px; | |||
text-align: center; | |||
} | |||
td.exept{ | |||
text-align: left; | |||
width:60% | |||
} | |||
</style> | |||
<body> | |||
<h1 align="center">Menu</h1> | |||
<table> | |||
<thead> | |||
<tr class="border"> | |||
<td align="center" colspan="4"> | |||
<h2>Dishes</h2> | |||
</td> | |||
</tr> | |||
<tr class="TableHead"> | |||
<th rowspan="2">Name</th> | |||
<th colspan="3">Price</th> | |||
</tr> | |||
<tr> | |||
<th>Small</th> | |||
<th>Medium</th> | |||
<th>Large</th> | |||
</tr> | |||
</thead> | |||
<tbody> | |||
<tr> | |||
<td colspan="4">Main course</td> | |||
</tr> | |||
<xsl:for-each select="Item"> | |||
<xsl:if test="@Category='Dish' and @MenuCategorie = 'Main course'"> | |||
<tr> | |||
<td class="exept"> | |||
<xsl:value-of select="ItemName"/><br/> | |||
Description:<xsl:value-of select="Description"/> | |||
<br/> | |||
Additional information: | |||
<ul> | |||
<xsl:for-each select="IntoleranceFreeFood/IntoleranceFree"> | |||
<li> | |||
<xsl:value-of select="."/> | |||
</li> | |||
</xsl:for-each> | |||
</ul> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Small'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Medium'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Large'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
</tr> | |||
</xsl:if> | |||
</xsl:for-each> | |||
<tr> | |||
<td colspan="4">Dessert</td> | |||
</tr> | |||
<xsl:for-each select="Item"> | |||
<xsl:if test="@Category='Dish' and @MenuCategorie = 'Dessert'"> | |||
<tr> | |||
<td class="exept"> | |||
<xsl:value-of select="ItemName"/><br/> | |||
Description:<xsl:value-of select="Description"/> | |||
<br/> | |||
Additional information: | |||
<ul> | |||
<xsl:for-each select="IntoleranceFreeFood/IntoleranceFree"> | |||
<li> | |||
<xsl:value-of select="."/> | |||
</li> | |||
</xsl:for-each> | |||
</ul> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Small'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Medium'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Large'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
</tr> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</tbody> | |||
</table> | |||
<table> | |||
<thead> | |||
<tr class="border"> | |||
<td align="center" colspan="4"> | |||
<h2>Drinks</h2> | |||
</td> | |||
</tr> | |||
<tr class="TableHead"> | |||
<th rowspan="2">Name</th> | |||
<th colspan="3">Price</th> | |||
</tr> | |||
<tr> | |||
<th>Small</th> | |||
<th>Medium</th> | |||
<th>Large</th> | |||
</tr> | |||
</thead> | |||
<tbody> | |||
<tr> | |||
<td colspan="4">Alcohol</td> | |||
</tr> | |||
<xsl:for-each select="Item"> | |||
<xsl:if test="@Category='Drink'and @MenuCategorie = 'Alcohol'"> | |||
<tr> | |||
<td class="exept"> | |||
<xsl:value-of select="ItemName"/><br/> | |||
Description:<xsl:value-of select="Description"/> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Small'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Medium'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Large'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
</tr> | |||
</xsl:if> | |||
</xsl:for-each> | |||
<tr> | |||
<td colspan="4">Non-Alcohol</td> | |||
</tr> | |||
<xsl:for-each select="Item"> | |||
<xsl:if test="@Category='Drink'and @MenuCategorie != 'Alcohol'"> | |||
<tr> | |||
<td class="exept"> | |||
<xsl:value-of select="ItemName"/><br/> | |||
Description:<xsl:value-of select="Description"/> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Small'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Medium'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
<td> | |||
<xsl:for-each select="Portions/Portion"> | |||
<xsl:if test="@PortionType = 'Large'"> | |||
<xsl:value-of select="PortionPrice"/> | |||
<xsl:value-of select="PortionPrice/@Currency"/> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
</tr> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</tbody> | |||
</table> | |||
</body> | |||
</html> | |||
</xsl:template> | |||
</xsl:stylesheet> | |||
</pre> | </pre> |
Revision as of 19:49, 19 March 2017
Meeskond
- Aleksei Kopõlov
- Sander Perens
Idee
XML/XSD/XSLT
XML
<?xml version="1.0" encoding="utf-8"?> <Menu> <Item Category="Dish" MenuCategorie="Main course"> <ItemName><![CDATA[Chicken & mushroom risotto]]></ItemName> <ItemType> <Type>Spicy</Type> </ItemType> <Portions> <Portion PortionType="Small"> <PortionPrice Currency="€">10.95</PortionPrice> <PortionSize> <Size Units="g">300</Size> <Size Units="Person">1</Size> </PortionSize> </Portion> <Portion PortionType="Medium"> <PortionPrice Currency="€">19.95</PortionPrice> <PortionSize> <Size Units="g">600</Size> <Size Units="Person">2</Size> </PortionSize> </Portion> </Portions> <Description>Looks good</Description> <Ingredients> <Ingredient Units="g" Quantity="50">Butter</Ingredient> <Ingredient Units="g" Quantity="100">Bacon</Ingredient> <Ingredient Units="g" Quantity="100">Rice</Ingredient> <Ingredient Units="ml" Quantity="50">White wine</Ingredient> </Ingredients> <IntoleranceFreeFood> <IntoleranceFree>Lactose Free</IntoleranceFree> <IntoleranceFree>Gluten free</IntoleranceFree> </IntoleranceFreeFood> </Item> <Item Category="Dish" MenuCategorie="Main course"> <ItemName><![CDATA[Pilaff]]></ItemName> <ItemType> <Type>Spicy</Type> <Type>mediterranean</Type> </ItemType> <Portions> <Portion PortionType="Small"> <PortionPrice Currency="€">5</PortionPrice> <PortionSize> <Size Units="g">300</Size> <Size Units="Person">1</Size> </PortionSize> </Portion> <Portion PortionType="Medium"> <PortionPrice Currency="€">6</PortionPrice> <PortionSize> <Size Units="g">600</Size> <Size Units="Person">2</Size> </PortionSize> </Portion> <Portion PortionType="Large"> <PortionPrice Currency="€">7</PortionPrice> <PortionSize> <Size Units="g">900</Size> <Size Units="Person">3</Size> </PortionSize> </Portion> </Portions> <Description>Looks good</Description> <Ingredients> <Ingredient Units="g" Quantity="50">Butter</Ingredient> <Ingredient Units="g" Quantity="100">Bacon</Ingredient> <Ingredient Units="g" Quantity="100">Rice</Ingredient> </Ingredients> <IntoleranceFreeFood> <IntoleranceFree>Lactose Free</IntoleranceFree> <IntoleranceFree>Gluten free</IntoleranceFree> </IntoleranceFreeFood> </Item> <Item Category="Dish" MenuCategorie="Dessert"> <ItemName><![CDATA[Classic Tiramisu]]></ItemName> <ItemType> <Type>Spicy</Type> <Type>Sour</Type> </ItemType> <Portions> <Portion PortionType="Small"> <PortionPrice Currency="€">10.95</PortionPrice> <PortionSize> <Size Units="g">300</Size> <Size Units="Person">1</Size> </PortionSize> </Portion> <Portion PortionType="Medium"> <PortionPrice Currency="€">19.95</PortionPrice> <PortionSize> <Size Units="g">600</Size> <Size Units="Person">2</Size> </PortionSize> </Portion> </Portions> <Description>Looks good, tastes okay</Description> <Ingredients> <Ingredient Units="g" Quantity="50">Butter</Ingredient> <Ingredient Units="g" Quantity="100">Bacon</Ingredient> <Ingredient Units="g" Quantity="100">Rice</Ingredient> <Ingredient Units="g" Quantity="50">White wine</Ingredient> </Ingredients> </Item> <Item Category="Dish" MenuCategorie="Dessert"> <ItemName><![CDATA[Pavlova]]></ItemName> <ItemType> <Type>Sweet</Type> </ItemType> <Portions> <Portion PortionType="Small"> <PortionPrice Currency="€">13.13</PortionPrice> <PortionSize> <Size Units="g">300</Size> <Size Units="Person">2</Size> </PortionSize> </Portion> <Portion PortionType="Large"> <PortionPrice Currency="€">27.99</PortionPrice> <PortionSize> <Size Units="g">600</Size> <Size Units="Person">4</Size> </PortionSize> </Portion> </Portions> <Description>Pavlova typically garnished with strawberries, passionfruit, kiwifruit and cream. Pavlova is a meringue-based dessert named after the Russian ballerina Anna Pavlova. It is a meringue dessert with a crisp crust and soft, light inside, usually topped with fruit and whipped cream.</Description> <Ingredients> <Ingredient Units="g" Quantity="50">strawberries</Ingredient> <Ingredient Units="g" Quantity="100">passionfruit</Ingredient> <Ingredient Units="g" Quantity="100">kiwifruit</Ingredient> <Ingredient Units="ml" Quantity="100">cream</Ingredient> </Ingredients> </Item> <Item Category="Drink" MenuCategorie="Alcohol"> <ItemName><![CDATA[Jem Beam]]></ItemName> <ItemType> <Type>Whisky</Type> </ItemType> <Portions> <Portion PortionType="Small"> <PortionPrice Currency="€">2.95</PortionPrice> <PortionSize> <Size Units="ml">30</Size> <Size Units="Shots">1</Size> </PortionSize> </Portion> <Portion PortionType="Medium"> <PortionPrice Currency="€">14.95</PortionPrice> <PortionSize> <Size Units="ml">300</Size> <Size Units="Shots">10</Size> </PortionSize> </Portion> </Portions> <Description>Whisky</Description> </Item> <Item Category="Drink" MenuCategorie="Juice"> <ItemName><![CDATA[Apple juice]]></ItemName> <ItemType> <Type>Juice</Type> </ItemType> <Portions> <Portion PortionType="Small"> <PortionPrice Currency="€">1.05</PortionPrice> <PortionSize> <Size Units="ml">200</Size> </PortionSize> </Portion> <Portion PortionType="Medium"> <PortionPrice Currency="€">1.55</PortionPrice> <PortionSize> <Size Units="ml">300</Size> </PortionSize> </Portion> </Portions> <Description>Freshly pressed from green apples</Description> </Item> <Item Category="Drink" MenuCategorie="Water"> <ItemName><![CDATA[Still water]]></ItemName> <ItemType> <Type>Water</Type> </ItemType> <Portions> <Portion PortionType="Small"> <PortionPrice Currency="€">1</PortionPrice> <PortionSize> <Size Units="ml">200</Size> </PortionSize> </Portion> <Portion PortionType="Medium"> <PortionPrice Currency="€">1.50</PortionPrice> <PortionSize> <Size Units="ml">300</Size> </PortionSize> </Portion> <Portion PortionType="Large"> <PortionPrice Currency="€">2</PortionPrice> <PortionSize> <Size Units="ml">500</Size> </PortionSize> </Portion> </Portions> <Description>From tap</Description> </Item> <Item Category="Drink" MenuCategorie="Alcohol"> <ItemName><![CDATA[Saku Kuld]]></ItemName> <ItemType> <Type>Beer</Type> </ItemType> <Portions> <Portion PortionType="Small"> <PortionPrice Currency="€">3.50</PortionPrice> <PortionSize> <Size Units="ml">300</Size> </PortionSize> </Portion> <Portion PortionType="Medium"> <PortionPrice Currency="€">5</PortionPrice> <PortionSize> <Size Units="ml">500</Size> </PortionSize> </Portion> </Portions> <Description>Saku Kuld is the finest beer of Estonia’s oldest brewery. It is the cream of the crop when it comes to beers. Saku Kuld is a masterpiece that entwines two centuries of brewing traditions with the latest technology.</Description> </Item> </Menu>
XSD
<?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Menu"> <xs:complexType> <xs:sequence> <xs:element name="Item" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="ItemName" type="xs:string" maxOccurs="1" minOccurs="1"/> <xs:element name="ItemType" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="Type" type ="xs:string" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Portions" minOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="Portion" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="PortionPrice" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="Currency" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="PortionSize" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="Size" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="Units" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="PortionType" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Description" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="Ingredients" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="Ingredient" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="Units" type="xs:string"/> <xs:attribute name="Quantity" type="xs:decimal"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="IntoleranceFreeFood" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="IntoleranceFree" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="Category" type="xs:string"/> <xs:attribute name="MenuCategorie" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
XSLT HTML
<html> <style> table { border-collapse: collapse; margin: 25px; margin-bottom: 50px; } th, td { border: 1px solid #ccc; padding: 10px; text-align: center; } td.exept{ text-align: left; width:60% } </style> <body> <h1 align="center">Menu</h1> <table> <thead> <tr class="border"> <td align="center" colspan="4"> <h2>Dishes</h2> </td> </tr> <tr class="TableHead"> <th rowspan="2">Name</th> <th colspan="3">Price</th> </tr> <tr> <th>Small</th> <th>Medium</th> <th>Large</th> </tr> </thead> <tbody> <tr> <td colspan="4">Main course</td> </tr> <tr> <td class="exept">Chicken & mushroom risotto<br> Description:Looks good<br> Additional information: <ul> <li>Lactose Free</li> <li>Gluten free</li> </ul> </td> <td>10.95€</td> <td>19.95€</td> <td></td> </tr> <tr> <td class="exept">Pilaff<br> Description:Looks good<br> Additional information: <ul> <li>Lactose Free</li> <li>Gluten free</li> </ul> </td> <td>5€</td> <td>6€</td> <td>7€</td> </tr> <tr> <td colspan="4">Dessert</td> </tr> <tr> <td class="exept">Classic Tiramisu<br> Description:Looks good, tastes okay<br> Additional information: <ul></ul> </td> <td>10.95€</td> <td>19.95€</td> <td></td> </tr> <tr> <td class="exept">Pavlova<br> Description:Pavlova typically garnished with strawberries, passionfruit, kiwifruit and cream. Pavlova is a meringue-based dessert named after the Russian ballerina Anna Pavlova. It is a meringue dessert with a crisp crust and soft, light inside, usually topped with fruit and whipped cream.<br> Additional information: <ul></ul> </td> <td>13.13€</td> <td></td> <td>27.99€</td> </tr> </tbody> </table> <table> <thead> <tr class="border"> <td align="center" colspan="4"> <h2>Drinks</h2> </td> </tr> <tr class="TableHead"> <th rowspan="2">Name</th> <th colspan="3">Price</th> </tr> <tr> <th>Small</th> <th>Medium</th> <th>Large</th> </tr> </thead> <tbody> <tr> <td colspan="4">Alcohol</td> </tr> <tr> <td class="exept">Jem Beam<br> Description:Whisky</td> <td>2.95€</td> <td>14.95€</td> <td></td> </tr> <tr> <td class="exept">Saku Kuld<br> Description:Saku Kuld is the finest beer of Estonia’s oldest brewery. It is the cream of the crop when it comes to beers. Saku Kuld is a masterpiece that entwines two centuries of brewing traditions with the latest technology.</td> <td>3.50€</td> <td>5€</td> <td></td> </tr> <tr> <td colspan="4">Non-Alcohol</td> </tr> <tr> <td class="exept">Apple juice<br> Description:Freshly pressed from green apples</td> <td>1.05€</td> <td>1.55€</td> <td></td> </tr> <tr> <td class="exept">Still water<br> Description:From tap</td> <td>1€</td> <td>1.50€</td> <td>2€</td> </tr> </tbody> </table> </body> </html>
XSLT XML
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/Menu"> <html> <style> table { border-collapse: collapse; margin: 25px; margin-bottom: 50px; } th, td { border: 1px solid #ccc; padding: 10px; text-align: center; } td.exept{ text-align: left; width:60% } </style> <body> <h1 align="center">Menu</h1> <table> <thead> <tr class="border"> <td align="center" colspan="4"> <h2>Dishes</h2> </td> </tr> <tr class="TableHead"> <th rowspan="2">Name</th> <th colspan="3">Price</th> </tr> <tr> <th>Small</th> <th>Medium</th> <th>Large</th> </tr> </thead> <tbody> <tr> <td colspan="4">Main course</td> </tr> <xsl:for-each select="Item"> <xsl:if test="@Category='Dish' and @MenuCategorie = 'Main course'"> <tr> <td class="exept"> <xsl:value-of select="ItemName"/><br/> Description:<xsl:value-of select="Description"/> <br/> Additional information: <ul> <xsl:for-each select="IntoleranceFreeFood/IntoleranceFree"> <li> <xsl:value-of select="."/> </li> </xsl:for-each> </ul> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Small'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Medium'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Large'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:if> </xsl:for-each> <tr> <td colspan="4">Dessert</td> </tr> <xsl:for-each select="Item"> <xsl:if test="@Category='Dish' and @MenuCategorie = 'Dessert'"> <tr> <td class="exept"> <xsl:value-of select="ItemName"/><br/> Description:<xsl:value-of select="Description"/> <br/> Additional information: <ul> <xsl:for-each select="IntoleranceFreeFood/IntoleranceFree"> <li> <xsl:value-of select="."/> </li> </xsl:for-each> </ul> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Small'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Medium'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Large'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:if> </xsl:for-each> </tbody> </table> <table> <thead> <tr class="border"> <td align="center" colspan="4"> <h2>Drinks</h2> </td> </tr> <tr class="TableHead"> <th rowspan="2">Name</th> <th colspan="3">Price</th> </tr> <tr> <th>Small</th> <th>Medium</th> <th>Large</th> </tr> </thead> <tbody> <tr> <td colspan="4">Alcohol</td> </tr> <xsl:for-each select="Item"> <xsl:if test="@Category='Drink'and @MenuCategorie = 'Alcohol'"> <tr> <td class="exept"> <xsl:value-of select="ItemName"/><br/> Description:<xsl:value-of select="Description"/> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Small'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Medium'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Large'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:if> </xsl:for-each> <tr> <td colspan="4">Non-Alcohol</td> </tr> <xsl:for-each select="Item"> <xsl:if test="@Category='Drink'and @MenuCategorie != 'Alcohol'"> <tr> <td class="exept"> <xsl:value-of select="ItemName"/><br/> Description:<xsl:value-of select="Description"/> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Small'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Medium'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> <td> <xsl:for-each select="Portions/Portion"> <xsl:if test="@PortionType = 'Large'"> <xsl:value-of select="PortionPrice"/> <xsl:value-of select="PortionPrice/@Currency"/> </xsl:if> </xsl:for-each> </td> </tr> </xsl:if> </xsl:for-each> </tbody> </table> </body> </html> </xsl:template> </xsl:stylesheet>