xsl-list
[Top] [All Lists]

RE: [xsl] How many levels of nodes can we nest in a xsl:template?

2007-09-09 14:13:31
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>