Phillip Rhodes wrote:
> <xsl:template match="html">
> <xsl:copy-of select="."/>
> <xsl:apply-templates/>
> </xsl:template>
copy-of will copy an entire branch of the tree. So you asked for all of
the 'html' element, including its descendants, to be copied verbatim.
Your apply-templates along with the built-in templates sent you down
into the source tree, but your template for whitespace never matched
because you were looking for whitespace[lines] which means whitespace
element having at least 1 lines element child. @lines was what you
meant, but that's not helpful either.
This is the meat of the stylesheet you want -- an identity transform, with
overrides for whitespace elements:
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="whitespace">
<p/>
<p/>
</xsl:template>
I suspect you want the lines attribute of the whitespace element to determine
how many 'p' elements (or 'br' elements inside one 'p', probably) to insert?
In that case, a recursive template (untested, but should do the trick):
<xsl:template match="whitespace">
<p>
<xsl:call-template name="insert-brs">
<xsl:with-param name="num" select="number(@lines)"/>
</xsl:call-template>
</p>
</xsl:template>
<xsl:template name="insert-brs">
<xsl:param name="num"/>
<xsl:if test="$num > 0">
<br/>
<xsl:call-template name="insert-brs">
<xsl:with-param name="num" select="$num - 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
- Mike
____________________________________________________________________________
mike j. brown | xml/xslt: http://skew.org/xml/
denver/boulder, colorado, usa | resume: http://skew.org/~mike/resume/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list