Re: Outputting closing HTML table tags conditionally
I am having trouble understanding how to output closing HTML tags
Yes, that is because you have been misled. XSLT is *not* an "angle-bracket processor" it is a "node-tree processor" ... you have to think nodes, not tags. You are approaching the solution improperly by trying to "output closing HTML tags", because doing so is not possible in XSLT.
Since you need to express all of your expected output as nodes in your stylesheet, your stylesheet is in XML. Thus, your stylesheet needs to be well-formed. Therefore, you cannot plan your algorithm to just output end tags, because end tags are not nodes, they will be created by the processor when emitting nodes, but they are not part of your input. They happen to be in your input syntax because they *describe* nodes, but they are *not* your input ... the nodes they describe are your input.
So, inside your <xsl:if> you will have to represent entire nodes (using start and end tags) in a well-formed fashion, and the processor will build the output using these nodes and when serializing these nodes to the result file will give you the necessary start and end tags or empty tags as required.
My stylesheet (with XML declaration, <xsl:output> and root template XSL ommitted) is:
You will have to change your algorithm to the following:
<table> <xsl:for-each select="image"> <xsl:if test="position() mod 4 = 0"> <tr> <xsl:for-each select=". | following-sibling::image | following-sibling::image | following-sibling::image"> <td><!--stuff for each iamge--></td> </xsl:for-each> </tr> </xsl:if> </xsl:for-each> </table>
You can see how the above is well-formed.
Anybody have any suggestions? All I want to do is output '</tr></table><table><tr>' within xsl:if.
But that would not be well-formed. If you stop thinking about tags and think instead about nodes, the solution should come to you.
I hope the above helps.
-- Next public European delivery: 3-day XSLT/2-day XSL-FO 2004-01-?? Instructor-led on-site corporate, government & user group training for XSLT and XSL-FO world-wide: please contact us for the details
G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) ISBN 0-13-065196-6 Definitive XSLT and XPath ISBN 0-13-140374-5 Definitive XSL-FO ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath ISBN 1-894049-11-X Practical Formatting Using XSL-FO Member of the XML Guild of Practitioners: http://XMLGuild.info Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format