Re: [xsl] Creating nested output from <xsl:if>'s

Subject: Re: [xsl] Creating nested output from <xsl:if>'s
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Sat, 04 Dec 2004 19:48:54 -0500
Paul,

How well controlled is your input?

If you can guarantee that @pitch and @rate are always there, it becomes just a bit easier in XSLT 1.0. If you can't, the tricks you have to resort to are considerably less elegant than the more straightforward 2.0 solution Mike showed you.

It can be done in XSLT 1.0 with some fancy parameter-passing traversals over those attributes. The trick is in getting things to nest properly in the output without lots of gratuitous code in xsl:choose constructions.

Cheers,
Wendell

At 12:34 PM 12/4/2004, you wrote:
On Saturday 04 December 2004 13:45, George Cristian Bina wrote:
> Hi,
>
> You can do something like below:
>
> <xsl:if test="@pitch='x-high'">
>      <xsl:text>&lt;PITCH BASE="70%"&gt;</xsl:text>
>      <xsl:if test="@rate='slow'">
>          <xsl:text>&lt;RATE SPEED="-40%"&gt;</xsl:text>
>          <xsl:apply-templates/>
>          <xsl:text>&lt;/RATE&gt;</xsl:text>
>      </xsl:if>
>      <xsl:text>&lt;/PITCH&gt;</xsl:text>
> </xsl:if>

That would work, but would not be very practical. There are quite a few
options and this would force me to have to write a _very_ long nested if
statement. Any other solutions?

___&&__&_&___&_&__&&&__&_&__&__&&____&&_&___&__&_&&_____&__&__&&_____&_&&_
"Thus I make my own use of the telegraph, without consulting
the directors, like the sparrows, which I perceive use it
extensively for a perch." -- Thoreau


Current Thread