From: Trevor Nicholls [mailto:trevor(_at_)castingthevoid(_dot_)com]
<snip/>
trouble. What is the recommended way to process this so that
the content of
the single FOOTNOTE which contains an <A ID="x"> which
matches the document
body's <A href="id(x)"> is output here?
Trevor,
This statement within the template matching "A[(_at_)class='footnote']" --
<xsl:apply-templates select="/XML/FOOTNOTES" mode="body" />
could be specialized to apply to just the TableFootnote node you require:
<xsl:apply-templates select="//*/TableFootnote[A/@ID=$fid]" mode="body"/>
from its current context by calling out to the top of the input XML using
the "//" path expression, but at some runtime expense. You want to avoid
this by making up a key table of TableFootnote elements (at top level of
stylesheet) --
<xsl:key name="footnotes"
match="*/FOOTNOTES/FOOTNOTE/TableFootnote"
use="A/@ID"/>
using the ID attribute of their child A nodes, and apply-templates to the
node-set returned by the desired index --
<xsl:apply-templates select="key('footnotes',
substring-before(substring-after(@href, '(')
, ')')
)"
mode="body"/>
In all these cases, obviously, the template we are applying should have a
match expression "TableFootnote" not "FOOTNOTES"
This could well be an FAQ but if so, not under the keywords I tried!
It is, but there is often difficulty knowing what keywords are appropriate
to a particular problem. This problem, as are so many of XSL, is a grouping
problem.
HTH,
-----------------------------------
Mike Haarman,
XSL Developer,
Internet Broadcasting Systems, Inc.
--~------------------------------------------------------------------
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>
--~--