Re: [xsl] selecting the following-sibling in recursive search...

Subject: Re: [xsl] selecting the following-sibling in recursive search...
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Thu, 17 Nov 2005 20:30:18 +0530
Hi Raj,
  Please try this approach. It uses a recursive named template.

<?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="/main">
   <output>
     <xsl:call-template name="select-sibling-elements">
       <xsl:with-param name="node" select="list[1]" />
     </xsl:call-template>
   </output>
</xsl:template>

<xsl:template name="select-sibling-elements">
   <xsl:param name="node" />

   <xsl:if test="not(name($node/following-sibling::*[1]) = 'list')">
     <xsl:copy-of select="$node/following-sibling::*[1]" />
     <xsl:call-template name="select-sibling-elements">
       <xsl:with-param name="node" select="$node/following-sibling::*[1]" />
     </xsl:call-template>
   </xsl:if>

</xsl:template>

</xsl:stylesheet>

Regards,
Mukul

On 11/17/05, Arulraj <p_arulraj@xxxxxxxxx> wrote:
> Hi,
>
> I have the following XML fragment..
> <main>
> <list>
>  <item/>
> </list>
> <table/>
> <p name="head1"/>
> <p name="head2"/>
> <list>
>  <item/>
> </list>
> <p name="head3"/>
> <list/>
> </main>
>
> In my XSL, i want to search the following-sibling of
> <list> item.
> so, from the first <list> i am selecting the
> following-siblings
> it should select only sibling before the next <list>.
> like <table/>,  <p name="head1/> and <p
> name="head2"/>.
>
> How to do that search criteria in the XSL?
>
> Thanks in advance
>
> Raj

Current Thread