RE: Finding and promoting footnotes
> From: Trevor Nicholls [mailto:trevor@xxxxxxxxxxxxxxxxxx] <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[@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.
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format