My template is as follows:
<?xml version="1.0"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:
js="javascript
:code"
>
<xsl:template match="/">
<STYLE class="text/css">
table{
border-style: solid;
border-width: 0 1 1 0;
border-color: #000000;
}
td{
border-style: solid;
border-width: 1 0 0 1;
border-color: #000000;
text-align: center;
padding: 0 0 0 0;
margin: 0 0 0 0;
font-family: arial;
font-size: 11px;
}
.tableNumbers{
font-family: arial;
font-size: 11px;
padding: 0 5 0 5;
text-align: right;
margin: 0 0 0 0;
background-color: #DDDDDD;
color: #0000FF;
}
.title1{
font-size: 14px;
font-family: arial;
font-weight: 600;
background-color: #DDDDDD;
color: #0000FF;
}
</STYLE>
<xsl:variable name="pg" select="number(1)" />
<table cellpadding="0" cellspacing="0" width="600">
<tr>
<td colspan="4" class="title1">
Cross Report - Page:#xA0;
<xsl:value-of select="$pg" />
#xA0;of
<xsl:value-of select="count(//PageVLSubset)" />
</td>
</tr>
<tr>
<td width=" 110" class="tableNumbers">Recording Type:</td>
<td width=" 190" ><xsl:value-of select="//PIRoot/txtRecordingType" />#xA0;</td>
<td width=" 110" class="tableNumbers">Translated By:</td>
<td width=" 190" ><xsl:value-of select="//PIRoot/txtTranslatedBy" />#xA0;</td>
</tr>
<tr>
<td class="tableNumbers">Show:</td>
<td><xsl:value-of select="//PIRoot/txtShow" />#xA0;</td>
<td class="tableNumbers">Client:</td>
<td><xsl:value-of select="//PIRoot/txtClient" />#xA0;</td>
</tr>
<tr>
<td class="tableNumbers">Recording Began:</td>
<td><xsl:value-of select="//PIRoot/txtDateRecordingBegan" />#xA0;</td>
<td class="tableNumbers">Adapted By:</td>
<td><xsl:value-of select="//PIRoot/txtAdaptedBy" />#xA0;</td>
</tr>
<tr>
<td class="tableNumbers">Series:</td>
<td><xsl:value-of select="//PIRoot/txtSeries" />#xA0;</td>
<td class="tableNumbers">Job Number:</td>
<td><xsl:value-of select="//PIRoot/txtJobNumber" />#xA0;</td>
</tr>
</table><br/>
<xsl:apply-templates select="/" />
</xsl:template>
<msxsl:script language="javascript" implements-prefix="
js">
<![CDATA[
function getTableNodeset( nFrom, nTo ){
var XMLDOM = new ActiveXObject ("Microsoft.XMLDOM")
var temp = XMLDOM.createElement("temp")
var line
for ( i=nFrom; i <= nTo; i++ ){
line = XMLDOM.createElement("line")
line.setAttribute( "n", i )
temp.appendChild(line)
}
return temp;
}
]]>
</msxsl:script>
<xsl:template match="//PageVLSubset[1]">
<xsl:variable name="nodesFrom" select="number(1)" />
<xsl:variable name="nodesTo" select="number(50)" />
<xsl:variable name="charNodes" select="character" />
<table cellpadding="0" cellspacing="0">
<tr>
<td/>
<xsl:for-each select="character">
<td>
<applet code="RotatedTextApplet.class" width="25" height="150">
<param name="charName">
<xsl:attribute name="value"><xsl:value-of select="@name" /></xsl:attribute>
</param>
</applet>
</td>
</xsl:for-each>
</tr>
<xsl:for-each select="
js:getTableNodeset ( $nodesFrom, $nodesTo )/line" >
<tr>
<td class="tableNumbers"><xsl:variable name="n" select="@n" /><xsl:value-of select="$n" /></td>
<xsl:for-each select="$charNodes">
<td>
#xA0;
<xsl:if test="count( vLoop[@loopNumber=$n] )>0">
<xsl:value-of select="vLoop[@loopNumber=$n]/@loopCount" />
</xsl:if>
#xA0;
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>
thanks