RE: [xsl] grouping elements under a new single parent element

Subject: RE: [xsl] grouping elements under a new single parent element
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 11 Dec 2008 09:23:01 -0000
Try this:

<xsl:template match="author-group">
  <author-group>
    <authors>
      <xsl:apply-templates select="author"/>
    </authors>
    <xsl:apply-templates select="*[not(self::author)]"/>
  </author-group>
</xsl:template> 

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: arut che [mailto:arutche@xxxxxxxxx] 
> Sent: 11 December 2008 05:34
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] grouping elements under a new single parent element
> 
> Hi all,
>   I am new to appl xslt/xml conversion,
> 
> I want to club multiple elements to a cluster and become 
> childs of a new parent element.
> 
> Input is :
> 
> <author-group>
> <author>
>   <given-name>A.N.</given-name>
>   <surname>Chiardfsf</surname>
>   <cross-ref refid="aff1">
>    <sup>a</sup>
>   </cross-ref>
>   <cross-ref refid="cor1">
>    <sup>wkqwj<sup>
>   </cross-ref>
>   <e-address type="email">asd@xxxxxxxxxx</e-address>
>  </author>
>  <author>
>   <given-name>L.J.</given-name>
>   <surname>Tfwqqf</surname>
>   <cross-ref refid="aff1">
>    <sup>a</sup>
>   </cross-ref>
>  </author>
>  <author>
>   <given-name>W.F.</given-name>
>   <surname>Eqwfq</surname>
>   <cross-ref refid="aff2">
>    <sup>b</sup>
>   </cross-ref>
>  </author>
> <affiliation id="aff1">
>   <label>a</label>
>   <textfn>zsg Divisionsdfgsfg, sgs</textfn>  </affiliation>  
> <affiliation id="aff2">
>   <label>b</label>
>   <textfn>DGD, USA</textfn>
>  </affiliation>
>  <correspondence id="cor1">
>   <label>rewt</label>
>   <text>Corresponding author. Tel:MKKWE W QWQWE</text>  
> </correspondence> </author-group>
> 
> 
> I want to club all "author" elements and need to placed under 
> a parent "authors" as follows:
> 
> 
> required output:
> 
> 
> <author-group>
> <authors>
>  <author>
>   <given-name>A.N.</given-name>
>   <surname>Chiardfsf</surname>
>   <cross-ref refid="aff1">
>    <sup>a</sup>
>   </cross-ref>
>   <cross-ref refid="cor1">
>    <sup>wkqwj<sup>
>   </cross-ref>
>   <e-address type="email">asd@xxxxxxxxxx</e-address>
>  </author>
>  <author>
>   <given-name>L.J.</given-name>
>   <surname>Tfwqqf</surname>
>   <cross-ref refid="aff1">
>    <sup>a</sup>
>   </cross-ref>
>  </author>
>  <author>
>   <given-name>W.F.</given-name>
>   <surname>Eqwfq</surname>
>   <cross-ref refid="aff2">
>    <sup>b</sup>
>   </cross-ref>
>  </author>
> </authors>
>    <affiliation id="aff1">
>   <label>a</label>
>   <textfn>zsg Divisionsdfgsfg, sgs</textfn>  </affiliation>  
> <affiliation id="aff2">
>   <label>b</label>
>   <textfn>DGD, USA</textfn>
>  </affiliation>
>  <correspondence id="cor1">
>   <label>rewt</label>
>   <text>Corresponding author. Tel:MKKWE W QWQWE</text>  
> </correspondence> </author-group>
> 
> 
> Regards
> Aruthce

Current Thread