|
Subject: Re: [xsl] Recursive selection, elegantly From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx> Date: Sun, 6 Jun 2004 01:02:21 -0700 (PDT) |
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/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Recursive selection, elegantly, Stephen Tredrea | Thread | RE: [xsl] Recursive selection, eleg, Stephen Tredrea |
| Recursive selection, elegantly, Stephen Tredrea | Date | xsl-list@lists.mulberrytech.com, Chen Yi |
| Month |