At 2009-06-16 15:30 +0200, Casper Voortman wrote:
I'm having trouble with breaking down a piece of XML into a simpler
structure by using xslt 1.0.
The problem concentrates itself specifically around splitting the
content within a <Text> element from the <FootNote>, which is also
part of the same element <Text >, and still keeping the order within
the <Paragraph> intact.
Sounds to me like you are trying to use pull (xsl:for-each) rather
than push (xsl:apply-templates).
Any suggestions would be much appreciated.
I hope the example below helps. Note that your desired output is the
same order as the input, so it is a simple matter of substitution.
. . . . . . . . . . . Ken
t:\ftemp>type casper.xml
<Paragraph Pstyle="Plattetekst">
<Text Cstyle="[No character style]">A line of text.</Text>
<Text Cstyle="Cursief">Another line of text.</Text>
<Text Cstyle="[No character style]">A 3rd line of text<FootNote
ID="14">
<Paragraph Pstyle="Voetnoot">
<Text Cstyle="[No character style]">This is the content
of the footnote.</Text>
</Paragraph>
</FootNote>that contains a footnote.</Text>
<Text Cstyle="Cursief">A 4th line of text.</Text>
<Text Cstyle="[No character style]">A 5th line of text that
also<FootNote ID="15">
<Paragraph Pstyle="Voetnoot">
<Text Cstyle="[No character style]">This is the 2nd
footnote.</Text>
</Paragraph>
</FootNote>a footnote.</Text>
</Paragraph>
t:\ftemp>call xslt casper.xml casper.xsl
<?xml version="1.0" encoding="utf-8"?><para>
A line of text.
<emphasis role="italic">Another line of text.</emphasis>
A 3rd line of text<footnote label="14">
<para>
This is the content
of the footnote.
</para>
</footnote>that contains a footnote.
<emphasis role="italic">A 4th line of text.</emphasis>
A 5th line of text that
also<footnote label="15">
<para>
This is the 2nd
footnote.
</para>
</footnote>a footnote.
</para>
t:\ftemp>type casper.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="Paragraph">
<para><xsl:apply-templates/></para>
</xsl:template>
<xsl:template match="FootNote">
<footnote label="{(_at_)ID}"><xsl:apply-templates/></footnote>
</xsl:template>
<xsl:template match="Text[(_at_)Cstyle='Cursief']">
<emphasis role="italic"><xsl:apply-templates/></emphasis>
</xsl:template>
<xsl:template match="Text">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
t:\ftemp>rem Done!
--
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
--~------------------------------------------------------------------
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>
--~--