Thanks. The main things that come to mind are:
(a) No comments in the code (see parallel thread)!
(b) <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
You really don't want to be doing that. I think David explained why.
(c) <xsl:for-each select="node()">
<xsl:choose>
<xsl:when test="name()='daytime'">
You are hand-coding an apply-templates here. Put the contents of each
xsl:when branch into a template rule
<xsl:template match="daytime">
and replace the xsl:for-each with xsl:apply-templates.
If you must test the current element name in an xsl:when, don't use
test="name()='x'", use test="self::x".
(d) <xsl:element name="daytime">
Write a literal result element <daytime>
(e) <xsl:when test="text()='yes'">
Don't test the contents of a text node, test the string value of the
containing element:
<xsl:when test=".='yes'">
It doesn't really make a difference here because you generated the XML and
you know there are no comments or processing instructions; but it's a bad
habit to get into because one day an XML instance will arrive containing
comments and your code will fail.
Michael Kay
http://www.saxonica.com/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--