Specific How-To Minimally Style XML with XSLT after adding over-arching categories

FeerveMib

New Member
So I'm going through the XML tutorial on w3schools, and I come across this page about styling XML with XSLT:http://www.w3schools.com/xml/tryxslt.asp?xmlfile=simple&xsltfile=simpleThere's some simply code there. I added two over-arching food categories \[code\]<waffles>\[/code\] and \[code\]<other>\[/code\]to the code, and I was wondering how I could use minimal XSLT to style the XML so that all \[code\]<waffle> <food>\[/code\] have a orange background and all \[code\]<other><food>\[/code\] to have a cyan background, without having to repeat a large chunk of code like I did below.You can see the original code in the link above, here's my code:XML:\[code\] <?xml version="1.0" encoding="ISO-8859-1"?><!-- Edited by XMLSpy? --><breakfast_menu> <waffles> <food> <name>Belgian Waffles</name> <price>$5.95</price> <description>two of our famous Belgian Waffles with plenty of real maple syrup</description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> <price>$7.95</price> <description>light Belgian waffles covered with strawberries and whipped cream</description> <calories>900</calories> </food> <food> <name>Berry-Berry Belgian Waffles</name> <price>$8.95</price> <description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description> <calories>900</calories> </food> </waffles> <other> <food> <name>French Toast</name> <price>$4.50</price> <description>thick slices made from our homemade sourdough bread</description> <calories>600</calories> </food> <food> <name>Homestyle Breakfast</name> <price>$6.95</price> <description>two eggs, bacon or sausage, toast, and our ever-popular hash browns</description> <calories>950</calories> </food> <other></breakfast_menu>\[/code\]XSLT:\[code\]<?xml version="1.0" encoding="ISO-8859-1"?><!-- Edited by XMLSpy? --> <html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE"> <xsl:for-each select="breakfast_menu/waffles"> <div style="background-color:ORANGE;"> <xsl:for-each select="food"> <div style="background-color:teal;color:white;padding:4px"> <span style="font-weight:bold"><xsl:value-of select="name"/></span> - <xsl:value-of select="price"/> </div> <div style="margin-left:20px;margin-bottom:1em;font-size:10pt"> <xsl:value-of select="description"/> <span style="font-style:italic"> <xsl:value-of select="calories"/> (calories per serving) </span> </div> </xsl:for-each> </div> </xsl:for-each> <xsl:for-each select="breakfast_menu/other"> <div style="background-color:CYAN;"> <xsl:for-each select="food"> <div style="background-color:teal;color:white;padding:4px"> <span style="font-weight:bold"><xsl:value-of select="name"/></span> - <xsl:value-of select="price"/> </div> <div style="margin-left:20px;margin-bottom:1em;font-size:10pt"> <xsl:value-of select="description"/> <span style="font-style:italic"> <xsl:value-of select="calories"/> (calories per serving) </span> </div> </xsl:for-each> </div> </xsl:for-each> </body> </html>\[/code\]
 
Back
Top