At 2003-11-29 14:35 -0800, Mark Jordan wrote:
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[1] |
following-sibling::image[2] |
following-sibling::image[3]">
<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.
................... Ken
--
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(_at_)CraneSoftwrights(_dot_)com
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