Connecting Tech Pros Worldwide Help | Site Map

How can I use xsl 1.0 for sort by group and output to xml again?

Newbie
 
Join Date: Oct 2009
Posts: 1
#1: Oct 9 '09
Hi all,

I have xml like these below.

Expand|Select|Wrap|Line Numbers
  1. <Listing>
  2.     <Avail>
  3.         <Field1>aaa</Field1>
  4.         <Field2>800</Field2>
  5.         <Field3>900</Field3>
  6.         <SortValue>20.00</SortValue>
  7.     </Avail>
  8.     <Avail>
  9.         <Field1>aaa</Field1>
  10.         <Field2>800</Field2>
  11.         <Field3>900</Field3>
  12.         <SortValue>10.00</SortValue>
  13.     </Avail>
  14.     <Avail>
  15.         <Field1>bbb</Field1>
  16.         <Field2>1300</Field2>
  17.         <Field3>1500</Field3>
  18.         <SortValue>35.05</SortValue>
  19.     </Avail>
  20.     <Avail>
  21.         <Field1>bbb</Field1>
  22.         <Field2>1300</Field2>
  23.         <Field3>1500</Field3>
  24.         <SortValue>20.80</SortValue>
  25.     </Avail>
  26.     <Avail>
  27.         <Field1>ccc</Field1>
  28.         <Field2>1500</Field2>
  29.         <Field3>1900</Field3>
  30.         <SortValue>40.00</SortValue>
  31.     </Avail>
  32. </Listing>
Then I want to ascending sort "SortValue" within group by "Field1", "Field2" and "Field3" above XML to
new XML output like this below.

Expand|Select|Wrap|Line Numbers
  1. <Listing>
  2.     <Avail>
  3.         <Field1>aaa</Field1>
  4.         <Field2>800</Field2>
  5.         <Field3>900</Field3>
  6.         <SortValue>10.00</SortValue>
  7.     </Avail>
  8.     <Avail>
  9.         <Field1>aaa</Field1>
  10.         <Field2>800</Field2>
  11.         <Field3>900</Field3>
  12.         <SortValue>20.00</SortValue>
  13.     </Avail>
  14.     <Avail>
  15.         <Field1>bbb</Field1>
  16.         <Field2>1300</Field2>
  17.         <Field3>1500</Field3>
  18.         <SortValue>20.80</SortValue>
  19.     </Avail>
  20.     <Avail>
  21.         <Field1>bbb</Field1>
  22.         <Field2>1300</Field2>
  23.         <Field3>1500</Field3>
  24.         <SortValue>35.05</SortValue>
  25.     </Avail>
  26.     <Avail>
  27.         <Field1>ccc</Field1>
  28.         <Field2>1500</Field2>
  29.         <Field3>1900</Field3>
  30.         <SortValue>40.00</SortValue>
  31.     </Avail>
  32. </Listing>
I try to sort my using "SortValue" field but I don't know,
How can I use XSL 1.0 for sort by group?

Thank you very much.
Reply