Subject: Re: [xsl] Creating nested output from <xsl:if>'s From: George Cristian Bina <george@xxxxxxx> Date: Sat, 04 Dec 2004 15:45:50 +0200 |
<xsl:if test="@pitch='x-high'"> <xsl:text><PITCH BASE="70%"></xsl:text> <xsl:if test="@rate='slow'"> <xsl:text><RATE SPEED="-40%"></xsl:text> <xsl:apply-templates/> <xsl:text></RATE></xsl:text> </xsl:if> <xsl:text></PITCH></xsl:text> </xsl:if>
Best Regards, George --------------------------------------------------------------------- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com
Sorry for the bad subject line, its pretty hard to explain. Basically i'm transforming one XML language into another. In doing this, I have some code like the following:
<xsl:template match="//prosody"> ... <xsl:choose> <xsl:when test="@pitch='x-high'"> <xsl:text><PITCH BASE="70%"></xsl:text> <xsl:apply-templates/> <xsl:text></PITCH></xsl:text> </xsl:when> ... <xsl:choose> <xsl:when test="@rate='slow'"> <xsl:text><RATE SPEED="-40%"></xsl:text> <xsl:apply-templates/> <xsl:text></RATE></xsl:text> </xsl:when> ... </xsl:template>
Now this all works fine when using individual prosody tags with one attribute (pitch or rate). The issue arises when doing something like:
<prosody rate="slow" pitch="x-high">Here is some high, slow speech</prosody>
The output is the following:
<PITCH BASE="70%">Here is some high, slow speech</PITCH><RATE SPEED="-40%">Here is some high, slow speech</RATE>
Obviously not what was wanted (nested tags with the text in them). How can I achieve what I need? If possible, without resorting to templates for each attribute.
Thanks for your time.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Creating nested output from <, Paul Giannaros | Thread | Re: [xsl] Creating nested output fr, Paul Giannaros |
[xsl] temporary merge of multiple x, Matt Adams | Date | Re: [xsl] Creating nested output fr, George Cristian Bina |
Month |