Re: [xsl] grabbing chunks of preceding-siblings between tables

Subject: Re: [xsl] grabbing chunks of preceding-siblings between tables
From: "Spencer Tickner" <spencertickner@xxxxxxxxx>
Date: Thu, 4 Oct 2007 11:22:37 -0700
Hi Everyone,

Thanks for the great suggestions. Got it working perfect.

Cheers,

Spencer

On 10/4/07, Mukul Gandhi <gandhi.mukul@xxxxxxxxx> wrote:
> Here is another XSLT 1.0 solution:
>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
>
>  <xsl:output method="xml" indent="yes" />
>
>  <xsl:template match="root">
>    <root>
>      <xsl:for-each select="table">
>        <xsl:variable name="x" select="generate-id()" />
>        <table>
>          <xsl:copy-of
> select="preceding-sibling::*[generate-id(following-sibling::table[1])
> = $x][not(self::table)]" />
>          <xsl:copy-of select="*" />
>        </table>
>      </xsl:for-each>
>    </root>
>  </xsl:template>
>
> </xsl:stylesheet>
>
> On 10/4/07, Spencer Tickner <spencertickner@xxxxxxxxx> wrote:
> > Hi List,
> >
> > Thanks in advance for the help. I'm doing some pre-processing of a XML
> > Dump of tables. I'm trying to associate header information in the
> > table to the table itself. I'm having difficulty figuring out how to
> > do this.. Anyway, examples always seem to say it better (XSLT 2.0 is
> > fine):
> >
> > XML
> >
> > <?xml version="1.0"?>
> > <root>
> >        <title1>Title for Table 1</title1>
> >        <title2>sub-title for Table 1</title2>
> >        <caption>Caption for Table 1</caption>
> >        <para_norm>Any number of different paragraphs that belong with Table
> > 1</para_norm>
> >        <table>
> >                <cell>Foo</cell>
> >                <cell>Bar</cell>
> >        </table>
> >        <title2>Table 2 only has subtitle</title2>
> >        <caption>Caption for Table 2</caption>
> >        <para_diff>Any number of different paragraphs that belong with Table
> > 2</para_diff>
> >        <table>
> >                <cell>Foo</cell>
> >                <cell>Bar</cell>
> >        </table>
> >        <title1>Title for Table 3</title1>
> >        <title2>sub-title for Table 3</title2>
> >        <caption>Caption for Table 3</caption>
> >        <para_norm>Any number of different paragraphs that belong with Table
> > 3</para_norm>
> >        <table>
> >                <cell>Foo</cell>
> >                <cell>Bar</cell>
> >        </table>
> > </root>
> >
> > Desired XML Output:
> >
> > <?xml version="1.0"?>
> > <root>
> >        <table>
> >                <title1>Title for Table 1</title1>
> >                <title2>sub-title for Table 1</title2>
> >                <caption>Caption for Table 1</caption>
> >                <para_norm>Any number of different paragraphs that belong with Table
> > 1</para_norm>
> >                <cell>Foo</cell>
> >                <cell>Bar</cell>
> >        </table>
> >        <table>
> >                <title2>Table 2 only has subtitle</title2>
> >                <caption>Caption for Table 2</caption>
> >                <para_diff>Any number of different paragraphs that belong with Table
> > 2</para_diff>
> >                <cell>Foo</cell>
> >                <cell>Bar</cell>
> >        </table>
> >        <table>
> >                <title1>Title for Table 3</title1>
> >                <title2>sub-title for Table 3</title2>
> >                <caption>Caption for Table 3</caption>
> >                <para_norm>Any number of different paragraphs that belong with Table
> > 3</para_norm>
> >                <cell>Foo</cell>
> >                <cell>Bar</cell>
> >        </table>
> > </root>
> >
> > I've tried a number of different things, but can't seem to translate
> > "Take all elements between <table> and add as child to following
> > <table>" into XSLT. Any help would be greatly appreciated.
> >
> > Thanks,
> >
> > Spencer
>
>
> --
> Regards,
> Mukul Gandhi

Current Thread