Subject: RE: [xsl] Finding and promoting footnotes From: "Haarman, Michael" <mhaarman@xxxxxxxxx> Date: Wed, 30 Nov 2005 00:35:17 -0600 |
> 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.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Finding and promoting footnot, Trevor Nicholls | Thread | RE: [xsl] Finding and promoting foo, Wendell Piez |
Re: [xsl] second implementation of , M. David Peterson | Date | RE: [xsl] second implementation of , Michael Kay |
Month |