This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Disable Output Escaping - really useful
- To: xsl-list at mulberrytech dot com
- Subject: Re: Disable Output Escaping - really useful
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Wed, 22 Mar 2000 11:47:39 GMT
- References: <8BD71A154EA6D211873E00105A125CDF19EC2D@TSSMX1>
- Reply-To: xsl-list at mulberrytech dot com
> Anyone know a way of doing this without disable-output-escaping? Is using
> disable-output-escaping like this a bit of a hack?
Any use of disable-output-encoding is _always_ a hack.
In a few situations it is useful (I have used it sometimes in my sheets)
but it is _always_ a bad idea, and means that your output tree will
not work as expected unless it is going to be reparsed, usually
it is only needed to overcome unfortunate markup in the input document
(like useful structure being hidden in a CDATA section).
> When an item is the 5th, 10th, 15th etc. (using "position() mod 5 =0")
> it should close this row and start the next.
Wrong viewpoint! In XSL you should think in terms of constructing a tree
not of writing out a linear XML syntax. Clearly in a `tree view'
there is no sense to </tr><tr>.
What you want to do is select every 5th node, and put that node and its
four next siblings into a tr node.
so (untested)
<xsl:for-each select="item[position() mod 5 = 1]">
<tr>
<xsl:apply-templates
select=".|following-siblings::item[position() < 5]"/>
</tr>
<xsl:for-each>
David
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list