xsl-list
[Top] [All Lists]

Problem with xsl:copy

2002-11-08 07:16:02
All,
 
I am trying to use the identity transformation to copy an HTML file and apply 
styling attributes to the <td> tags nested inside <tr> tags that meet certain 
criteria. The problem is the styling attributes are being applied to the <tr> 
tags instead of to the <td> tags (I want them applied to the td tags because of 
issues with Netscape). I think the problem has to do with the fact that 
xsl:copy doesn't make a deep copy, and I tried to use xsl:copy-of but without 
success. Following is my XSLT file:
 
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                 version="1.0">
<xsl:output method="html" indent="yes"/>
 
<xsl:template match="node()|@*"> <!--identity transform-->
   <xsl:copy>
     <xsl:apply-templates select="node()|@*"/>
   </xsl:copy>
</xsl:template>
 
 
<xsl:template match="tr[td[count(a) = 0 and text() != 'Data not available' and 
count(@*) = 0]]">
      <xsl:copy>
   <xsl:choose>
   <xsl:when test="position() mod 2 = 0">
   <xsl:for-each select="td">
    <xsl:attribute name="class">evenRowStyle</xsl:attribute>
    </xsl:for-each>
   </xsl:when>
   <xsl:otherwise>
   <xsl:for-each select="td">
    <xsl:attribute name="class">oddRowStyle</xsl:attribute>
    </xsl:for-each>
   </xsl:otherwise>
   </xsl:choose>
     <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
</xsl:template>
 
 
</xsl:stylesheet>
 
 
The resulting xml file I am getting is:
 
<tr class = "oddRowStyle">
<td>Name:</td><td>Susan</td>
</tr>
<tr class="evenRowStyle">
<td>Address:</td>
<td>1 Maple Leaf Lane</td>
</tr>
 
What I want is:
 
<tr>
<td class="oddRowStyle">Name:</td><td class="oddRowStyle">Susan</td>
</tr>
<tr>
<td class="evenRowStyle">Address:</td>
<td class="evenRowStyle">1 Maple Leaf Lane</td>
</tr>
 
Any help would be greatly appreciated.
 
Thanks,
Rechell
 
 
 
 

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



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