This is what I am trying to remove(unwanted text between tags) These come
from the protocol, stability-condition, and column-title elements in the
input xml:
<fo:table-body>
2001/0003
25C / 60% RH UPRIGHT
New Column 1New Column 2New Column 3<fo:table-row>
As well as similar stuff you'll see if you run the transformation.
Thanks for your help.
Here's the stylesheet:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:variable name="page-header-height"
select="concat(count(/report/header/header-row)*4,'mm')"/>
<xsl:template match="report">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="page"
page-height="21cm" page-width="29.7cm" margin-top="10mm"
margin-bottom="10mm" margin-left="20mm" margin-right="10mm">
<fo:region-body margin-top="30mm"
margin-bottom="10mm" margin-left="0mm" margin-right="0mm"/>
<fo:region-before extent="30mm"/>
<fo:region-after extent="10mm"/>
</fo:simple-page-master>
<fo:simple-page-master
master-name="footnotes-page" page-height="21cm" page-width="29.7cm"
margin-top="10mm" margin-bottom="10mm" margin-left="20mm"
margin-right="10mm">
<fo:region-body
margin-top="{$page-header-height}" margin-bottom="10mm" margin-left="0mm"
margin-right="0mm"/>
<fo:region-before
extent="{$page-header-height}"/>
<fo:region-after extent="10mm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="page">
<fo:static-content
flow-name="xsl-region-before">
<fo:table>
<fo:table-column
column-width="35mm"/>
<fo:table-column
column-width="55mm"/>
<fo:table-column
column-width="35mm"/>
<fo:table-column
column-width="55mm"/>
<fo:table-column
column-width="35mm"/>
<fo:table-column
column-width="55mm"/>
<fo:table-body>
<xsl:apply-templates
mode="page-header"/>
</fo:table-body>
</fo:table>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:table>
<fo:table-column
column-width="73mm"/>
<fo:table-column
column-width="15mm"/>
<fo:table-column
column-width="24mm"/>
<fo:table-column
column-width="24mm"/>
<fo:table-column
column-width="24mm"/>
<fo:table-column
column-width="24mm"/>
<fo:table-column
column-width="24mm"/>
<fo:table-column
column-width="24mm"/>
<fo:table-column
column-width="24mm"/>
<fo:table-column
column-width="24mm"/>
<fo:table-column
column-width="24mm"/>
<fo:table-body>
<xsl:apply-templates/>
</fo:table-body>
</fo:table>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="footnotes-page">
<fo:static-content
flow-name="xsl-region-before">
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<xsl:apply-templates
mode="footnotes"/>"
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="body" mode="column-header">
<xsl:apply-templates mode="column-header"/>
</xsl:template>
<xsl:template match="/report/body/column-titles"
mode="column-header">
<fo:table-row>
<xsl:apply-templates mode="column-header"/>
</fo:table-row>
</xsl:template>
<xsl:template match="/report/body/column-titles/title"
mode="column-header">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="7pt" font-weight="bold">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="body">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="body-row">
<fo:table-row>
<xsl:choose>
<xsl:when test="./@pagebreak='true'">
<xsl:attribute
name="break-before">page</xsl:attribute>
<xsl:apply-templates
mode="table-header"/>
</xsl:when>
<xsl:when test="./@first-row='true'">
<xsl:apply-templates
mode="table-header"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</fo:table-row>
</xsl:template>
<xsl:template match="method">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="7pt">
<xsl:value-of select="."/>
<fo:inline font-size="5"
vertical-align="super">
<xsl:value-of
select="../method-footnote"/>
</fo:inline>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="method-version">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="7pt">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="attribute">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="7pt">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="specification">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="7pt">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="timepoint">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="result-value">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="7pt">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="method" mode="table-header">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="8pt" font-weight="bold">
<xsl:value-of select="."/>
<fo:inline font-size="5"
vertical-align="super">
<xsl:value-of
select="../method-footnote"/>
</fo:inline>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="method-version" mode="table-header">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="8pt" font-weight="bold">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="attribute" mode="table-header">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="8pt" font-weight="bold">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="specification" mode="table-header">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="8pt" font-weight="bold">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="timepoint" mode="table-header">
<xsl:apply-templates mode="table-header"/>
</xsl:template>
<xsl:template match="result-value" mode="table-header">
<fo:table-cell border-width="0.5mm">
<fo:block font-size="8pt" font-weight="bold">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="header-row" mode="page-header">
<fo:table-row>
<xsl:apply-templates mode="page-header"/>
</fo:table-row>
</xsl:template>
<xsl:template match="header-column" mode="page-header">
<xsl:apply-templates mode="page-header"/>
</xsl:template>
<xsl:template match="header-name" mode="page-header">
<fo:table-cell border-width="0.5mm" text-align="right">
<fo:block font-size="7pt">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="header-value" mode="page-header">
<fo:table-cell border-width="0.5mm" text-align="left">
<fo:block font-size="7pt">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="footnote" mode="footnotes">
<fo:block font-size="7pt">
<fo:inline font-size="5" vertical-align="super">
<xsl:value-of select="./footnote-number"/>
</fo:inline>
<xsl:value-of select="./note"/>
</fo:block>
</xsl:template>
<xsl:template mode="table-header" match="/report/protocol"/>
<xsl:template match="*"/>
<xsl:template mode="column-header" match="*"/>
<xsl:template mode="table-header" match="*"/>
</xsl:stylesheet>
Here's some example XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<report>
<protocol>
2001/0003
</protocol>
<stability-condition>
25C / 60% RH UPRIGHT
</stability-condition>
<header>
<column-title>
<title>New Column 1</title>
</column-title>
<column-title>
<title>New Column 2</title>
</column-title>
<column-title>
<title>New Column 3</title>
</column-title>
<header-row>
<header-column>
<header-name>Stability Lot:</header-name>
<header-value>whatever</header-value>
</header-column>
</header-row>
<header-row>
<header-column>
<header-name>:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Batch Number - Tertiary
Lot:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Container Description -
Primary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Desiccant Supplier -
Primary:</header-name>
<header-value/>
</header-column>
</header-row>
<header-row>
<header-column>
<header-name>:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Batch Size - Primary
Lot:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Container Description -
Secondary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Desiccant Supplier -
Secondary:</header-name>
<header-value/>
</header-column>
</header-row>
<header-row>
<header-column>
<header-name>:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Batch Size - Secondary
Lot:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Container Supplier -
Primary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>FID Number - Primary
Lot:</header-name>
<header-value/>
</header-column>
</header-row>
<header-row>
<header-column>
<header-name>:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Blister Backing -
Primary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Container Supplier -
Secondary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Fill Volume -
Primary:</header-name>
<header-value/>
</header-column>
</header-row>
<header-row>
<header-column>
<header-name>:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Blister Backing Supplier -
Primary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Container Volume -
Primary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Manufacture Date - Primary
Lot:</header-name>
<header-value/>
</header-column>
</header-row>
<header-row>
<header-column>
<header-name>:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Blister Material -
Primary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Container Volume -
Secondary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Manufacture Date - Secondary
Lot:</header-name>
<header-value/>
</header-column>
</header-row>
<header-row>
<header-column>
<header-name>:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Manufacture Site - Secondary
Lot:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Desiccant Description -
Primary:</header-name>
<header-value/>
</header-column>
<header-column>
<header-name>Manufacture Date - Tertiary
Lot:</header-name>
<header-value/>
</header-column>
</header-row>
</header>
<body>
<column-titles>
<title>Test Method</title>
<title>Procedure</title>
<title>Attribute</title>
<title>Specification</title>
<title>1 MONTH</title>
<title>2 MONTH</title>
<title>3 MONTHS</title>
<title>4 MONTHS</title>
<title>6 MONTHS</title>
</column-titles>
<body-row pagebreak="false" first-row="true">
<method>Test Method</method>
<method-footnote/>
<method-version>Procedure</method-version>
<attribute>Attribute</attribute>
<specification>Specification</specification>
<timepoint tp="null">
<result-value>1 MONTH</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="null">
<result-value>2 MONTH</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="null">
<result-value>3 MONTHS</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="null">
<result-value>4 MONTHS</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="null">
<result-value>6 MONTHS</result-value>
<footnote-number/>
</timepoint>
</body-row>
<body-row pagebreak="false">
<method>APPEARANCE OF SOMETHING POWDER</method>
<method-footnote/>
<method-version>A 28.7</method-version>
<attribute>Appearance</attribute>
<specification/>
<timepoint tp="1 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="2 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="3 MONTHS">
<result-value>Pass</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="4 MONTHS">
<result-value>Pass</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="6 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
</body-row>
<body-row pagebreak="false">
<method>APPEARANCE OF BLAH BLAH</method>
<method-footnote/>
<method-version>A 28.7</method-version>
<attribute>Test Date</attribute>
<specification/>
<timepoint tp="1 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="2 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="3 MONTHS">
<result-value>20Feb2002</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="4 MONTHS">
<result-value>20-Feb-20002</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="6 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
</body-row>
<body-row pagebreak="false">
<method>SOMETHING OR OTHER</method>
<method-footnote/>
<method-version>M 9.3</method-version>
<attribute>Individual &lt;/= 1.5%</attribute>
<specification/>
<timepoint tp="1 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="2 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="3 MONTHS">
<result-value>1.00</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="4 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="6 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
</body-row>
<body-row pagebreak="false">
<method>LAH DEE DAH</method>
<method-footnote/>
<method-version>M 9.3</method-version>
<attribute>Mean HMWP &lt;/= 1.5%</attribute>
<specification/>
<timepoint tp="1 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="2 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="3 MONTHS">
<result-value>1.00</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="4 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="6 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
</body-row>
<body-row pagebreak="false">
<method>OK RIGHT UH HUH</method>
<method-footnote/>
<method-version>M 9.3</method-version>
<attribute>Test Date</attribute>
<specification/>
<timepoint tp="1 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="2 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="3 MONTHS">
<result-value>20Feb2002</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="4 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="6 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
</body-row>
<body-row pagebreak="false">
<method>IDENTIFICATION AND CONTENT</method>
<method-footnote/>
<method-version>I 4.78</method-version>
<attribute>As Is Individuals</attribute>
<specification/>
<timepoint tp="1 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="2 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="3 MONTHS">
<result-value>600</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="4 MONTHS">
<result-value>600</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="6 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
</body-row>
<body-row pagebreak="false">
<method>IDENTIFICATION AND CONTENT OF
SOMETHING</method>
<method-footnote/>
<method-version>I 4.78</method-version>
<attribute>Mean Doo Dah Content</attribute>
<specification/>
<timepoint tp="1 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="2 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="3 MONTHS">
<result-value>605</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="4 MONTHS">
<result-value>600</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="6 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
</body-row>
<body-row pagebreak="false">
<method>IDENTIFICATION AND CONTENT OF
SOMETHING</method>
<method-footnote/>
<method-version>I 4.78</method-version>
<attribute>Mean As Is</attribute>
<specification/>
<timepoint tp="1 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="2 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="3 MONTHS">
<result-value>600</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="4 MONTHS">
<result-value>595</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="6 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
</body-row>
<body-row pagebreak="false">
<method>IDENTIFICATION AND CONTENT OF
SOMETHING</method>
<method-footnote/>
<method-version>I 4.78</method-version>
<attribute>TEST DATE</attribute>
<specification/>
<timepoint tp="1 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="2 MONTH">
<result-value/>
<footnote-number/>
</timepoint>
<timepoint tp="3 MONTHS">
<result-value>20Feb2002</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="4 MONTHS">
<result-value>20-Feb-2002</result-value>
<footnote-number/>
</timepoint>
<timepoint tp="6 MONTHS">
<result-value/>
<footnote-number/>
</timepoint>
</body-row>
</body>
</report>
LEGAL NOTICE
Unless expressly stated otherwise, this message is confidential and may be
privileged. It is intended for the addressee(s) only. Access to this E-mail by
anyone else is unauthorized. If you are not an addressee, any disclosure or
copying of the contents of this E-mail or any action taken (or not taken) in
reliance on it is unauthorized and may be unlawful. If you are not an
addressee, please inform the sender immediately.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list