Re: [xsl] Getting the data after and before the specified node

Subject: Re: [xsl] Getting the data after and before the specified node
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Wed, 5 Oct 2005 21:17:29 +0530
Hi Aaron,
  This seems to do what you want..

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">

<xsl:output method="xml" indent="yes" />

<xsl:template match="/xml">
   <root>
     <xsl:apply-templates/>
   </root>
</xsl:template>

<xsl:template match="a">
   <xsl:apply-templates select="b" />
</xsl:template>

<xsl:template match="b">
  <label><xsl:value-of select="." /></label>
</xsl:template>

<xsl:template match="c">
   <para><xsl:value-of select="." /></para>
</xsl:template>

</xsl:stylesheet>

Regards,
Mukul

On 10/5/05, aaron apigo <aaronjose_apigo2001@xxxxxxxxx> wrote:
> hi all,
>
>   I have the problem getting the getting the data
> after and before the specified node:
>
> with this:
>
> <xml>
>    <a>
>        <b>aaron</b>
>    </a>
>    <c>butter</c>
>    <c>bread</c>
>    <c>fly</c>
>    <c>team</c>
>    <a>
>        <b>JOSE</b>
>    </a>
>    <c>jack</c>
>    <c>mary</c>
>    <c>seph</c>
>    <c>try</c>
>    <a>
>        <b>Andrew</b>
>    </a>
>    <c>aaron</c>
> </xml>
>
> output should be:
>
> <?xml version="1.0" encoding="utf-8"?>
> <root>
> <label>aaron</label>
>    <para>butter</para>
>    <para>bread</para>
>    <para>fly</para>
>    <para>team</para>
> <label>JOSE</label>
>    <para>jack</para>
>    <para>mary</para>
>    <para>seph</para>
>    <para>try</para>
> <label>Andrew</label>
>    <para>aaron</para>
> </root>
>
> I have this XSL:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> version="1.0">
>
>    <xsl:template match="/xml">
>     <xsl:apply-templates select="a" mode="test"/>
>    </xsl:template>
>
>    <xsl:template match="a" mode="test">
>        <label>
>           <xsl:apply-templates select="b"/>
>        </label>
>        <para>
>            <xsl:apply-templates
> select="following::c[?????????]"/>
>        </para>
>    </xsl:template>
>
>    <xsl:template match="b">
>        <xsl:apply-templates/>
>    </xsl:template>
>
> </xsl:stylesheet>
>
> with this XSL, all the <c> were captured, what i want
> is only the <c> that comes after <a> but before the
> next <a>?
> any idea on this.
>
> thanks in advance.
>
> regards.
> aaron
>
>
>
>
>
>
> __________________________________
> Yahoo! Mail - PC Magazine Editors' Choice 2005
> http://mail.yahoo.com

Current Thread