|
Subject: Re: How to output a subset of preceeding nodes From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx> Date: Sun, 10 Sep 2000 19:34:34 +0100 |
Steve,
>What I need to do is to process all FN elements located prior to the current
><P> element, BUT after the last set of <FN> elements I already processed!
I guess that your XML looks something like:
<doc>
<FN id="fn1">
<P>Footnote 1</P>
</FN>
<P id="para1">Paragraph 1</P>
<section>
<FN id="fn2">
<P>Footnote 2</P>
</FN>
<H1>Heading</H1>
<P id="para2">Paragraph 2</P>
</section>
</doc>
In other words:
(a) FNs are always associated with (and processed alongside) Ps, not with
any other elements
(b) FNs may not immediately precede their respective P
If this is the case, given that your current node is a P element, you can
get the FN elements between it and the previous P using:
preceding::FN[generate-id(following::P[1]) = generate-id(current())]
In other words:
any FN element that precedes the current element in the source document
such that:
the unique ID for the immediately following P of the FN is the same as
the unique ID of the current (P) element
[You don't have to generate-id()s if you have some other natural identifier
for the P elements, like an 'id' attribute.]
So, you could probably use something like:
<xsl:template match="P">
<xsl:apply-templates />
<xsl:apply-templates select="preceding::FN[generate-id(following::P[1]) =
generate-id(current())]" />
</xsl:template>
<xsl:template match="FN">
<p /><xsl:value-of select="P" />
</xsl:template>
The reason I've done away with the 'Dump Footnotes' named template was that
it's not really necessary: you can just select the FNs that you want to
process within the 'P'-matching template as above rather than passing them
as a parameter to a template. Of course you can change it back if you want
to :)
I hope that helps,
Jeni
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| How to output a subset of preceedin, Steve Carton | Thread | RE: How to output a subset of prece, Kay Michael |
| Re: parameter count in xsl:number, Jeni Tennison | Date | Suggestion for XSLT 2.0, Matthew Bentley |
| Month |