[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Recursive selection, elegantly
Hi Stephen, Given the XML - <?xml version="1.0" encoding="UTF-8"?> <root> <menu ref="main_menu"> <item resource="/"/> <item resource="/who_we_are"/> <item resource="/contact_us"/> <item resource="/disclaimer"/> </menu> <page about="/"> <name>Home</name> </page> <page about="/who_we_are"> <name>About us</name> </page> <page about="/contact_us"> <name>Contact us</name> </page> <page about="/disclaimer"> <name>Disclaimer</name> </page> </root> The following XSL - <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/root"> <html> <head> <title/> </head> <body> <table> <tr> <xsl:apply-templates select="page"/> </tr> </table> </body> </html> </xsl:template> <xsl:template match="page"> <td> <a href="{@about}"> <xsl:value-of select="name"/> </a> </td> </xsl:template> </xsl:stylesheet> produces output - <html> <head> <title></title> </head> <body> <table> <tr> <td><a href="/">Home</a></td> <td><a href="/who_we_are">About us</a></td> <td><a href="/contact_us">Contact us</a></td> <td><a href="/disclaimer">Disclaimer</a></td> </tr> </table> </body> </html> Regards, Mukul --- Stephen Tredrea <stephen.tredrea@xxxxxxxxxxxxx> wrote: > Any suggestion on getting this to work? I can do it > in four steps but not in > three as attempted here! > > Thanks, Stephen > > XML (snippet): > > <menu ref="main_menu"> > <item resource="/" /> > <item resource="/who_we_are" /> > <item resource="/contact_us" /> > <item resource="/disclaimer" /> > </menu> > > <page about="/"> > <name>Home</name> > </page> > > <page about="/who_we_are"> > <name>About us</name> > </page> > > ...etc... > > XSL (snippet): > > <xsl:template match="/"> > <xsl:apply-templates > select="//menu[@ref='main_menu'" mode="main_menu" > /> > </xsl:template> > > <xsl:template match="menu" mode="main_menu"> > <table> > <tr> > <xsl:apply-templates select="//*[@about = > item/resource]" > mode="menu_item" /> > </tr> > </table> > </xsl:template> > > <xsl:template match="*" mode="menu_item"> > <td> > <xsl:element name="a"> > <xsl:attribute name="href"><xsl:value-of > select="@about" > /></xsl:attribute> > <xsl:value-of select="name" /> > </xsl:element> > </td> > </xsl:template> > > Required HTML: > > <table> > <tr> > <td><a href="/">Home</a></td> > <td><a href="/who_we_are">About us</a></td> > ...etc... > </tr> > </table> > > > --+------------------------------------------------------------------ > 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@xxxxxxxxxxxxxxxxxxxxxx> > --+-- > __________________________________ Do you Yahoo!? Friends. Fun. Try the all-new Yahoo! Messenger. http://messenger.yahoo.com/
|
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
|