Re: [xsl] How can I sort this?

Subject: Re: [xsl] How can I sort this?
From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx>
Date: Tue, 24 May 2005 01:24:44 -0700 (PDT)
Please try this XSL ..
(there seems to be well formdness error in the XML you
posted)

<?xml version="1.0"?> 
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
 
<xsl:output method="xml" encoding="UTF-8" indent="yes"
/> 

<xsl:template match="/BigList">
   <select id="SmallElements">
    <xsl:for-each select=".//Name">
      <xsl:sort select="." />
      <option
value="{preceding-sibling::Code[1]}"><xsl:value-of
select="." /></option>         
    </xsl:for-each>
   </select> 
</xsl:template>

</xsl:stylesheet>

Regards,
Mukul

--- knocte <knocte@xxxxxxxxx> wrote:
> Hello list!
> 
> I have a problem of sorting when forming a SELECT
> INPUT BOX.
> 
> 
> The XML:
> 
> <BigList>
>   <BigElement>
>     <Code>XXP</Code>
>     <SmallList>
>       <SmallElement>
>         <Code>001</Code1>
>         <Name>A</Name>
>       </SmallElement>
>       <SmallElement>
>         <Code>002</Code1>
>         <Name>X</Name>
>       </SmallElement>
>     </SmallList>
>   </BigElement>
>   <BigElement>
>     <Code>YYJ</Code>
>     <SmallList>
>       <SmallElement>
>         <Code>01</Code1>
>         <Name>B</Name>
>       </SmallElement>
>       <SmallElement>
>         <Code>02</Code1>
>         <Name>Z</Name>
>       </SmallElement>
>     </SmallList>
>   </Element>
> </BigList>
> 
> 
> The XSLT:
> 
> <select id="SmallElements">
>   <xsl:for-each select="BigList/BigElement">
>     <xsl:for-each select="SmallList/SmallElement">
>       <option value="Code">
>         <xsl:value-of select="Name" />
>       </option>
>     </xsl:for-each>
>   </xsl:for-each>
> </select>
> 
> Results:
> 
> <select id="SmallElements">
>   <option value="001">A</option>
>   <option value="002">X</option>
>   <option value="01">B</option>
>   <option value="02">Z</option>
> </select>
> 
> 
> How can I sort by the name? I mean, my expected
> results are:
> 
> <select id="SmallElements">
>   <option value="001">A</option>
>   <option value="01">B</option>
>   <option value="002">X</option>
>   <option value="02">Z</option>
> </select>
> 
> 
> Thanks in advance!
> 
>   Andrew
> 
> 

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Current Thread