Re: [xsl] Calcuting TH rows

Subject: Re: [xsl] Calcuting TH rows
From: "Matthew L. Avizinis" <mla@xxxxxxxxx>
Date: Fri, 09 Jan 2009 18:44:51 -0500
David Carlisle wrote:
>> I need the <thead> to close AFTER the 
>> last <tr> (row) that contains <th> elements.
>>     
>
> don't think of opening and closing tags, think of elements containing or
> not containingg stuff.
>
> reword the requirement to:
>
>  I need the thead element to contain the result of processing rows that
> have a th, and the remaining rows to be processed in tbody (or nothing,
> I can't remeber quite how these tables worked). 
>
> Once phrased that way, the translation to xslt is immediate:
>
> <thead>
>   <xsl:apply-templates select="tr[th]"/>
> </thead>
> <tbody>
>   <xsl:apply-templates select="tr[not(th)]"/>
> </tbody>
>
>
> no xsl:if testing is required here, I think.
>
> David
>
>   
I think he stated that he wanted to only create the <thead> if there
were any tr[th], otherwise no <thead>.
In which case you'd need to test something like:

<xsl:choose>
   <xsl:when test="tr[th]">
	<thead>
	  <xsl:apply-templates select="tr[th]"/>
	</thead>
	<tbody>
	  <xsl:apply-templates select="tr[not(th)]"/>
	</tbody>
   </xsl:when>
   <xsl:otherwise>
	<xsl:apply-templates select="tr"/>
   </xsl:otherwise>
</xsl:choose>

Matthew L. Avizinis
Gleim Publications, Inc.
P.S. I've been a member of this list for quite a while now.  What a
wealth of solutions you've all provided during that time.  I usually
don't reply much anymore since the list regulars/gurus are so fast they
usually have a response posted before I even get started typing. :-)

Current Thread