This problem has nothing to do with the level of nesting. The data is output
twice because you have asked it to be output twice:
<xsl:choose>
<xsl:when test="./@type ='speech' "> "<xsl:value-of
select="."/>" </xsl:when>
<xsl:when test="./@type = 'thought' ">
<i>
<xsl:value-of select="."/>
</i>
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="p"/>
It's written the first time when you do <xsl:value-of select="."/>, and it's
written the second time when you do <xsl:apply-templates select="p"/>.
I can't really advise you how to correct this because I don't understand
your data or your desired output well enough.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Alice Wei [mailto:ajwei(_at_)indiana(_dot_)edu]
Sent: 09 September 2007 20:47
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] How many levels of nodes can we nest in a xsl:template?
Hi,
This is my first time trying to put in several layers of
nodes within a template, and the XML is found below:
<panelGroup>
<panel n="1" characters="margo damian ike">
<balloon who="ike" type="speech">
<p>My <emph rend="bold">every</emph>
instinct led me to the <emph
rend="bold">right</emph>
passages, Doctor Damian! </p>
<p> I'll record it on film for you,
right now!</p>
</balloon>
</panel> ........(more data)
</panelGroup>
<xsl:template match="panelGroup">
<table id="main" align="center" valign="middle">
<tr>
<td>
<xsl:apply-templates select="figure"/>
</td>
<td>
<xsl:apply-templates select="panel"/>
</td>
</tr>
</table>
</xsl:template>
<xsl:template match="panel">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="balloon">
<p>
<b>
<xsl:value-of select="./@who"/>
</b>
<xsl:choose>
<xsl:when test="./@type ='speech' ">
"<xsl:value-of select="."/>" </xsl:when>
<xsl:when test="./@type = 'thought' ">
<i>
<xsl:value-of select="."/>
</i>
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="p"/>
</p>
</xsl:template>
<xsl:template match="p">
<xsl:apply-templates/>
</xsl:template>
However, when I transform the data, the data appears twice.
The first line that appears is the line that does not have
any other formatting(bold or italics), and then the second
line would show the proper format. The problem is that when I
took out the <xsl:apply-templates/> line from the balloon
template, none of the bold print would show, although text
would be only appeared once. Is this because I have nested
too many levels of nodes within my "main template"? If so,
how many templates am I allowed to have to produce proper results?
A Newbie to xsl:templates nesting
Alice Wei
MIS 2008
School of Library and Information Science
--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--