RE: [xsl] order problem

Subject: RE: [xsl] order problem
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 27 Jun 2003 09:51:25 +0100
> >
> > I have this element hierarchy
> >
> > Source::
> > root
> >     body
> >         record1(*)
> >         record2(*)
> >
> > Destination::
> > root1
> >     body1
> >         record3(*)
> >         record4(*)

Actually, in the text of your message, you suggest that your source has
a quite different structure, namely:

   root
       body
           ( record1 | record2 ) *
            
This is a classic case for xsl:apply-templates.

<xsl:apply-templates select="record1 | record2"/>

<xsl:template match="record1">
...
</xsl:template>

<xsl:template match="record2">
...
</xsl:template>


> >
> > Here occurence of record1 and record2 can occur any number of 
> > times.This will be my source xml on which the transform is to be 
> > applied.Following is the xsl
> >
> > <xsl:template match="/" name="root">
> > <xsl:element name="root1">
> >  <xsl:element name="body1">
> >   <xsl:for-each select="/root/body/record1">
> >    <xsl:element name="record3"><xsl:value-of 
> > select="concat(.,'1')"/></xsl:element>
> >   </xsl:for-each>
> >   <xsl:for-each select="/root/body/record2">
> >    <xsl:element name="record4"><xsl:value-of 
> > select="concat(.,'2')"/></xsl:element>
> >   </xsl:for-each>
> >  </xsl:element>
> > </xsl:element>
> > </xsl:template>
> >
> > Only problem would be that i need the order of records to be same in
> output
> > as in input and input of records can be in random order,viz 
> > <record1><record1><record2><record1><record2><record1>.But with the 
> > two for-loops this will break the sequence.
> >
> > How can this be done.
> >
> > Any help on this would be deeply appreciated.
> >
> > Thanks,
> > Shadab
> >
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread