Subject: Re: [xsl] Extract footnotes From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Sat, 03 Nov 2007 10:12:03 -0400 |
Can anybody let me know how to extract "footnote" from paragraph and write it to end of the section.
Below is what I am trying to do
Input
<section>
<para>111...<footnote label="1" id="f1"><para>First fnt</para></footnote> 222... <footnote label="2" id="f2"><para>second fnt</para></footnote> </para>
<para>333...<footnote label="3" id="f3"><para>Third fnt</para></footnote> ...</para>
</section>
Required Output <level> <para>111....222 .... </para> <para>333... ...</para> <footnote label="1" id="f1"><para>First fnt</para></footnote> <footnote label="2" id="f2"><para>second fnt</para></footnote> <footnote label="3" id="f3"><para>Third fnt</para></footnote> </level>
<xsl:template match="section"> <level> <xsl:apply-templates/> <xsl:if test="descendant::*[self::footnote]"> <xsl:apply-templates select="descendant::*[self::section//footnote]"/> </xsl:if> </level> </xsl:template>
<xsl:template match="para"> <xsl:copy> <xsl:apply-templates select="descendant::*[not(self::footnote)]"/> </xsl:copy> </xsl:template>
t:\ftemp>type rawat.xsl <?xml version="1.0" encoding="US-ASCII"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="section"> <level> <!--do the body of the section--> <xsl:apply-templates/> <!--do the end notes for the section--> <xsl:apply-templates select=".//footnote" mode="end-notes"/> </level> </xsl:template>
<xsl:template match="footnote"> <!--do nothing when first encountered--> </xsl:template>
<xsl:template match="footnote" mode="end-notes"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template>
<xsl:template match="@*|node()"><!--identity for all other nodes--> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template>
</xsl:stylesheet> t:\ftemp>xslt rawat.xml rawat.xsl con <?xml version="1.0" encoding="utf-8"?> <level>
<footnote label="1" id="f1"> <para>First fnt</para> </footnote> <footnote label="2" id="f2"> <para>second fnt</para> </footnote> <footnote label="3" id="f3"> <para>Third fnt</para> </footnote> </level> t:\ftemp>
-- Comprehensive in-depth XSLT2/XSL-FO1.1 classes: Austin TX,Jan-2008 World-wide corporate, govt. & user group XML, XSL and UBL training RSS feeds: publicly-available developer resources and training G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Extract footnotes, J. S. Rawat | Thread | Re: [xsl] Extract footnotes, J. S. Rawat |
RE: [xsl] first question to the lis, Michael Kay | Date | Re: [xsl] remove shape="rect" attri, B. Kamer |
Month |