xsl-list
[Top] [All Lists]

RE: Parameter problem

2003-10-02 08:11:46

Hi Michael

Does $firstN have a value in the PartyList/When [1] template?
 yes.
Is the PartyList/When [last()] template actually being called?
 yes.

If so, something very odd is going on. Tell us which processor you are
using, and post a complete stylesheet + source document so we can debug
it for you.
         I am using MSXML not sure about the processor. If i have an xml
parser do i automatically have a processor aswell?
        I am using xmlSpy to step through the transformation process. At
the bottom of this mail is the html output i am getting.

xml file:
  
<?xml:stylesheet TYPE="text/xsl" href="Trending3B.xsl"?>
<Events>
        <Theatre>
                <When DateTime="Thursday 14 November 2002 11:50"
Attendance="54"/>
                <When DateTime="Thursday 14 November 2002 11:51"
Attendance="54"/>
                <When DateTime="Thursday 14 November 2002 11:53"
Attendance="52"/>
                <When DateTime="Thursday 14 November 2002 11:54"
Attendance="52"/>
                <When DateTime="Thursday 14 November 2002 11:55"
Attendance="50"/>
                <When DateTime="Thursday 14 November 2002 11:56"
Attendance="54"/>
                <When DateTime="Thursday 14 November 2002 11:57"
Attendance="50"/>
                <When DateTime="Thursday 14 November 2002 11:58"
Attendance="100"/>
                <When DateTime="Thursday 14 November 2002 11:59"
Attendance="50"/>
                <When DateTime="Thursday 14 November 2002 12:00"
Attendance="52"/>
                <When DateTime="Thursday 14 November 2002 12:01"
Attendance="50"/>
                <When DateTime="Thursday 14 November 2002 12:02"
Attendance="56"/>
        </Theatre>
        <Beach>
                <When DateTime="Thursday 14 November 2002 17:04"
Attendance="90"/>
                <When DateTime="Thursday 14 November 2002 17:07"
Attendance="65"/>
                <When DateTime="Thursday 14 November 2002 17:08"
Attendance="100"/>
                <When DateTime="Thursday 14 November 2002 17:09"
Attendance="52"/>
                <When DateTime="Thursday 14 November 2002 17:10"
Attendance="66"/>
                <When DateTime="Thursday 14 November 2002 17:10"
Attendance="54"/>
                <When DateTime="Thursday 14 November 2002 17:11"
Attendance="52"/>
                <When DateTime="Thursday 14 November 2002 17:12"
Attendance="73"/>
                <When DateTime="Thursday 14 November 2002 17:13"
Attendance="56"/>
                <When DateTime="Thursday 14 November 2002 17:14"
Attendance="53"/>
                <When DateTime="Thursday 14 November 2002 17:15"
Attendance="54"/>
                <When DateTime="Thursday 14 November 2002 17:16"
Attendance="50"/>
                <When DateTime="Thursday 14 November 2002 17:19"
Attendance="56"/>
        </Beach>
        <PartyList>
                <When DateTime="Thursday 14 November 2002 11:51"
Attendance="50"/>
                <When DateTime="Thursday 14 November 2002 11:53"
Attendance="72"/>
                <When DateTime="Thursday 14 November 2002 11:54"
Attendance="52"/>
                <When DateTime="Thursday 14 November 2002 11:55"
Attendance="53"/>
                <When DateTime="Thursday 14 November 2002 11:56"
Attendance="66"/>
                <When DateTime="Thursday 14 November 2002 11:57"
Attendance="55"/>
                <When DateTime="Thursday 14 November 2002 11:58"
Attendance="88"/>
                <When DateTime="Thursday 14 November 2002 16:55"
Attendance="57"/>
                <When DateTime="Thursday 14 November 2002 16:56"
Attendance="100"/>
                <When DateTime="Thursday 14 November 2002 16:57"
Attendance="59"/>
        </PartyList>
        <DateFrom>Saturday, 09 November 2002</DateFrom>
        <DateTo>Saturday, 16 November 2002</DateTo>
</Events>

------------------------------------------------------------------------
------------------------------------------------------------------

xsl file:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<!-- EVENTS.XSL -->

<xsl:template match="/">
        <HTML>
        <HEAD>
                <TITLE>Event List</TITLE>
                <LINK REL="stylesheet" TYPE="text/css" HREF="events.css"
/>
        </HEAD>
        <BODY>
                <H1>Event Report</H1>

                <H3>From <xsl:value-of select="//DateFrom"/> To
<xsl:value-of select="//DateTo"/></H3>
                <H3></H3>

                <xsl:apply-templates />
        </BODY>
        </HTML>
</xsl:template>
        
<xsl:template match="Theatre">
        <H3>Theatre</H3>
        <TABLE ID="tblTheatre" BORDER="0">
                <TR class="clsHeader"><TD width="170">Minimum
Value</TD><TD width="170">Peak Value</TD><TD
width="250">Average</TD></TR>
                
                <xsl:choose>

                        <xsl:when test="/Theatre/*[count(When)=0]">
                                <TD><br>
                                        </br>No 'Theatre' logs
available.</TD>
                        </xsl:when>
                                <xsl:otherwise>
                                        <xsl:apply-templates
select="When[(_at_)Attendance]">
                                                <xsl:sort
select="@Attendance" order="ascending" data-type="number"/>     
                                        </xsl:apply-templates>

                                        <TD><xsl:value-of
select="sum(//@Attendance) div count(//@Attendance)"/></TD>
                                </xsl:otherwise>

                </xsl:choose>

        </TABLE>
</xsl:template>

<xsl:template match="Beach">    
        <H3>Beach</H3>
        <TABLE ID="tblBeach" BORDER="0">
                <TR class="clsHeader"><TD width="170">Minimum
Value</TD><TD width="170">Peak Value</TD><TD
width="250">Average</TD></TR>
                
                <xsl:choose>
                        <xsl:when test="/Beach/*[count(*) = 0]">
                                <TD><br>
                                        </br>No 'Beach' logs
available.</TD> 
                        </xsl:when>
                        <xsl:otherwise>
                                <xsl:apply-templates
select="When[(_at_)Attendance]">
                                        <xsl:sort select="@Attendance"
order="ascending" data-type="number"/>  
                                </xsl:apply-templates>

                                <TD><xsl:value-of
select="sum(//@Attendance) div count(//@Attendance)"/></TD>
                        </xsl:otherwise>

                </xsl:choose>

        </TABLE>
</xsl:template>

<xsl:template match="PartyList">
        <H3>PartyList</H3>
        <xsl:apply-templates select="When[(_at_)Attendance]">
                        <xsl:sort select="@Attendance" order="ascending"
data-type="number"/>    
        </xsl:apply-templates>
</xsl:template>

<xsl:template match="Theatre/When[(_at_)Attendance]">

        <xsl:if test="position() = 1">
                <TD>CURRENT min<xsl:value-of select="@Attendance"
/></TD>
                
        </xsl:if>

                                 
        <xsl:if test="position() = last()"> 
                <TD>CURRENT max<xsl:value-of select="@Attendance"/></TD>
        </xsl:if>
                        
</xsl:template>

<xsl:template match="Beach/When[(_at_)Attendance]">

        <xsl:if test="position() = 1">
                <TD><xsl:value-of select="@Attendance" /></TD>
        
        </xsl:if>
                         
        <xsl:if test="position() = last()"> 
                <TD><xsl:value-of select="@Attendance"/></TD>
        </xsl:if>
</xsl:template>
 

<xsl:template match="PartyList/When[last()]">

        <xsl:param name = "first"/>
        <xsl:param name = "last"  select="@Attendance"/>
                <xsl:variable name="difference" select = "$last -
$first"/>
        <TD><xsl:value-of select="$first"/></TD>
        <TD><xsl:value-of select="$last"/></TD>
        <TD><xsl:value-of select="$difference"/></TD>
        
</xsl:template>

<xsl:template match="PartyList/When[1]">

        <xsl:variable name="firstN"><xsl:value-of
select="@Attendance"/></xsl:variable>
        <TD><xsl:value-of select="$firstN"/></TD>
        
        <xsl:apply-templates select="following-sibling::When [last()]">
                <xsl:with-param name="first" select="number($firstN)"/>
        </xsl:apply-templates>

</xsl:template>

<xsl:template match="DateFrom | DateTo">
</xsl:template>

</xsl:stylesheet>

------------------------------------------------------------------------
------------------------------------------------------------------

html output;

<HTML><HEAD>            <META http-equiv="Content-Type"
content="text/html; charset=UTF-8"><TITLE>Event List</TITLE><LINK
REL="stylesheet" TYPE="text/css" HREF="event.css"></HEAD><BODY><H1>Event
Report</H1><H3>From Saturday, 09 November 2002 To  Saturday, 16 November
2002</H3>
                <H3>
                </H3><H3>Theatre</H3>
                <TABLE ID="tblAlarms" BORDER="0">
                        <TR class="clsHeader"><TD width="170">Minimum
Value</TD><TD width="170">Peak Value</TD><TD width="250">Average</TD>
                        </TR><TD>T min50</TD><TD>CURRENT
max54</TD><TD>52.6</TD>
                </TABLE><H3>Beach</H3>
                <TABLE ID="tblAlarms2" BORDER="0">
                        <TR class="clsHeader"><TD width="170">Minimum
Value</TD><TD width="170">Peak Value</TD><TD width="250">Average</TD>
                        </TR><TD>50</TD><TD>56</TD><TD>52.6</TD>
        
</TABLE><H3>PartyList</H3><TD>50</TD><TD></TD><TD>59</TD><TD>NaN</TD>
        </BODY></HTML>


Thanks in advance
marsha

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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