This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Q on copying


Hello.

Rosa I-Ting Cheng wrote:
> Can anyone please tell me how to copy XML into certain sorted
> order while keeping the attributes of the root element as is?
> ie the following is my XML
> 
> <Root att1="" att2="">
> <Info sort="2"/>
> <Info sort="5"/>
> <info sort="1"/>

Replace all "Info"s with "info"s.

> <other sort="3"/>
> <other sort="5"/>
> <other sort="2"/>
> </Root>
> 
> I want to turn that XML into
> <Root att1="" att2="">
> <info sort="1"/>
> <Info sort="2"/>
> <Info sort="5"/>
> <other sort="3"/>
> <other sort="4"/>
> <other sort="5"/>
> </Root>
> 
> This is what I have so far..
> <xsl:template name="Root">
> <Root>

Insert the following here:
  <xsl:copy-of select="@*"/>

> <xsl:for-each select="info">
>       <xsl:sort select="sort"/>

Replace select="sort" with select="@sort"
and add data-type="number" if you treat
the sort's values as numbers rather than strings.

>       <xsl:copy-of select="."/>
> </xsl:for-each>
> <xsl:for-each select="other">
>       <xsl:sort select="sort"/>

Do the same here.

>       <xsl:copy-of select="."/>
> </xsl:for-each>
> </Root>
> </xsl:template>

-- 
Alexander E. Gutman

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]