All I can say to this solution is WOW.  I have to work harder on my
recursive template understanding. I would need a while to analyze your
solution but its working!!!
Many many thanks,
Houman
-----Original Message-----
From: George Cristian Bina [mailto:george(_at_)oxygenxml(_dot_)com] 
Sent: 13 July 2006 16:50
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Recursive wrapping
Something like below perhaps?
<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="node() | @*">
     <xsl:copy>
       <xsl:apply-templates select="node() | @*"/>
     </xsl:copy>
   </xsl:template>
   <xsl:template match="Attribute">
     <OtherAttributes>
       <xsl:copy>
         <xsl:apply-templates select="node() | @*"/>
       </xsl:copy>
       <xsl:apply-templates 
select="following-sibling::*[1][self::Attribute]" mode="att"/>
     </OtherAttributes>
   </xsl:template>
   <xsl:template 
match="Attribute[preceding-sibling::*[1][self::Attribute]]"/>
   <xsl:template match="Attribute" mode="att">
       <xsl:copy>
         <xsl:apply-templates select="node() | @*"/>
       </xsl:copy>
       <xsl:apply-templates 
select="following-sibling::*[1][self::Attribute]" mode="att"/>
   </xsl:template>
   <xsl:template match="node() | @*" mode="att">
     <xsl:copy>
       <xsl:apply-templates select="node() | @*"/>
     </xsl:copy>
   </xsl:template>
</xsl:stylesheet>
Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
Khorasani, Houman wrote:
Hi,
I have a problem, which should be quite straight forward but I can't
find the solution.
XML:
<a>1</a>
<b>2</b>
<Attribute>
      <Name>xx</Name>
      <Value>xx</Value>
</Attribute>
<Attribute>
      <Name>yy </Name>
      <Value>yy</Value>
</Attribute>
...
<c>3</c>
Would like to generate:
<a>1</a>
<b>2</b>
<OtherAttributes>
      <Attribute>
              <Name>xx</Name>
              <Value>xx</Value>
      </Attribute>
      <Attribute>
              <Name>yy </Name>
              <Value>yy</Value>       
      </Attribute>
      ...
</OtherAttributes>
<c>3</c>
There could be 0 to n attribute elements and I would like to wrap them
between an OtherAttributes.
I have tried to solve it by recursive templates, but somehow I don't
get
there.  Any suggestions?
Many thanks
Houman
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--