Hi,
I have a basic working footnote generator that takes an augmented XHTML and
generates XHTML.
Files are availiable here :-
http://www.aarongray.org/Test/XSL/Footnotes/
I am using MSXSL Version 4.0
There are two issues that I would like to hopefully solve :-
1) <xsl:output indent="yes"> does not seem to work.
2) elements like <br/> are being output as <br></br>
Any solutions or suggestions are welcome.
Full code, input and output XHTML are below too...
~~~~~~~~~~~~~~~~~~~ footnote.xsl ~~~~~~~~~~~~~~~~~~~~~
<?xml version="1.0"?>
<xsl:stylesheet version="2.0"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xhtml xsl xs">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" mode="html"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:head" mode="html">
<head>
<xsl:copy-of select="*"/>
</head>
</xsl:template>
<xsl:template match="xhtml:body" mode="html">
<body>
<xsl:apply-templates select="@*|node()" mode="body"/>
</body>
</xsl:template>
<xsl:template match="@*|node()" mode="body">
<xsl:copy>
<xsl:apply-templates select="@*|*|node()" mode="body"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:footnote" mode="body">
<xsl:variable name="footnoteNumber"><xsl:number/></xsl:variable>
<xsl:element name="a"><xsl:attribute name="href">#fn<xsl:value-of
select="$footnoteNumber"/></xsl:attribute><xsl:attribute
name="name">#fr<xsl:value-of
select="$footnoteNumber"/></xsl:attribute>[<xsl:value-of
select="$footnoteNumber"/>]</xsl:element>
</xsl:template>
<xsl:template match="xhtml:footnotes" mode="body">
<xsl:for-each select="//xhtml:footnote">
<xsl:variable name="footnoteNumber"><xsl:number/></xsl:variable>
<xsl:element name="a"><xsl:attribute name="name">#fn<xsl:value-of
select="$footnoteNumber"/></xsl:attribute><xsl:attribute
name="href">#fr<xsl:value-of
select="$footnoteNumber"/></xsl:attribute><xsl:value-of
select="$footnoteNumber"/></xsl:element>.
<xsl:apply-templates select="." mode="footnote"/><br/>
</xsl:for-each>
</xsl:template>
<xsl:template match="xhtml:footnote/*" mode="footnote">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ footnote.html ~~~~~~~~~~~~~~~~~~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Footnote test</title>
</head>
<body>
Test <footnote>This is a footnote</footnote><br/>
Test2 <footnote>This is another footnote</footnote><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<footnotes/>
</body>
</html>
~~~~~~~~~~~~~~~~~ output ~~~~~~~~~~~~~~~~~~~
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Footnote test</title>
</head>
<body>
Test <a href="#fn1" name="#fr1">[1]</a>
<br></br>
Test2 <a href="#fn2" name="#fr2">[2]</a>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<br></br>
<a name="#fn1" href="#fr1">1</a>.
This is a footnote<br />
<a name="#fn2" href="#fr2">2</a>.
This is another footnote<br />
</body>
</html>
Many thanks,
Aaron
--~------------------------------------------------------------------
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>
--~--