This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: header/footer: How to to separate html-tag in to different xsl-template rules?
- To: xsl-list at mulberrytech dot com
- Subject: Re: header/footer: How to to separate html-tag in to different xsl-template rules?
- From: Mike Brown <mike at skew dot org>
- Date: Fri, 23 Jun 2000 11:55:26 -0600 (MDT)
- Reply-To: xsl-list at mulberrytech dot com
> How could I separate headers and footers in my xsl-templates? My problem
> is, that I cannot have a tag like "body" in an <xsl:template>, whithout
> closing it.
>
> So how to do:
>
> <xsl:template match="header">
> <html>
> <head>
> </head>
> <body>
> </xsl:template>
>
> <xsl:template match="footer">
> </body>
> </html>
> </xsl:template>
XSLT does not operate on tags. It operates on a tree of nodes that is
implied by the markup. For example,
<html>
<head>head stuff</head>
<body>body stuff</body>
</html>
has a node tree like
root
|___element 'html'
|___text '\n '
|___element 'head'
| |___text 'head stuff'
|___text '\n '
|___element 'body'
|___text 'body stuff'
Furthermore, the markup you are putting in the stylesheet is not a
specification for literal output. It is a specification for how the XSLT
processor should go about creating another node tree, the 'result tree'.
Your HTML output will be *derived* from this result tree after it is
created. Not only that, but the XSLT itself is XML, and must be
well-formed.
So begin thinking in terms of complete elements:
<xsl:template match="doc">
<html>
<head>
<xsl:apply-templates select="doc_head"/>
</head>
<body>
<xsl:apply-templates select="content"/>
</body>
</html>
</xsl:template>
...just as an example.
- Mike
____________________________________________________________________
Mike J. Brown, software engineer at My XML/XSL resources:
webb.net in Denver, Colorado, USA http://www.skew.org/xml/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list