guten tag,
ich suche schon seid einiger zeit eine lösung für folgendes problem:
input: fußnoten in docbook 5.0, d.h. in der form <footnote><para>hier steht der Fußnotentext</para></footnote> - diese steht direkt im text.
output: im text steht nur die referenzzahl in form von <a id="fn_texti" href="fn_footi">(i)</a> , wobei i die Fußnotenzahl ist.
am seitenende entsprechend:
<a id="fn:footi" href="fn:texti">und der Fußnotentext</a>
mein erster gedanke war eine for-each schleife, jedoch ergab sich da das problem, dass ich nicht wusste, wie ich den Parameter i beim nächsten schritt erhöhen sollte, z.b. in dem ich das definierte template (name=bulid_anchor) in sich selbst aufrufe. nun habe ich es auf choose umgemünzt und eine for-each schleife drum gesetzt, aber es funktioniert nicht richtig (denn fußnotentext habe ich bisher noch nicht verarbeitet, also keinen rückwärtigen anker erstellt - bitte berücksichtigen):
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:d="http://docbook.org/ns/docbook" exclude-result-prefixes="d">
...
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<xsl:call-template name="build_anchor"/>
</body>
</html>
</xsl:template>
...
<xsl:template name="build_anchor">
<xsl:param name="i" select="1"></xsl:param>
<xsl:for-each select="*">
xsl:choose
<xsl:when test="name()='d:footnote'">
<xsl:element name="a">
<xsl:attribute name="id">
xsl:textfn_text</xsl:text>
<xsl:value-of select="$i"/>
</xsl:attribute>
<xsl:attribute name="href">
xsl:text#fn_foot</xsl:text>
<xsl:value-of select="$i"/>
</xsl:attribute>
xsl:text(</xsl:text><xsl:value-of select="$i"/>xsl:text)</xsl:text>
<xsl:call-template name="build_anchor">
<xsl:with-param name="i" select="$i+1"></xsl:with-param>
</xsl:call-template>
</xsl:element>
</xsl:when>
xsl:otherwise
<xsl:apply-templates select="current()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
dieser weg erscheint mir jedoch äußerst umständlich. ist eine erhöhung des parameters i in einer einfach for-each schleife möglich?
ich bitte um tipps und anregungen
mfg elo