xsl-list
[Top] [All Lists]

Re: Sorting and Merge

2003-11-17 01:00:53
Just two things to note:

 1. The provided source xml is severely non-wellformed.

 2. It is not clear what are the requirements for the transformation

A complete (but smaller) example with well-formed xml and a good
explanation of the requirements for the transformation will have better
chances to be understood.


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL


--- Dongling Ding wrote:
I have the following XML file and want to sort
elements based on an attribute in the same level,
Also, output the non-duplicate elements.

<Member _pos="1" name="P1" > 
   <Data> 123</Data>
   <Member _pos="2" name="P12"> 
      <Data> 213</DataStorage>
      <Member _pos="3" name="P121"> 
              <Data> 666</Data>
      </Member> 
   </Member> 
</Member> 
<Member _pos="1" name="P1"> 
   <DataS> 123</Data>
   <Member _pos="1" name="P11"> 
   <Data> 678</DataS>
   </Member> 
   <Member _pos="2" name="P12"> 
      <Data> 213</Data>
   </Member> 
</Member> 
<Member _pos="2" name="P2"> 
   <DataS> 4545</Data>
   <Member _pos="1" name="P21"> 
   <Data> 678</DataS>
   </Member> 
   <Member _pos="2" name="P22"> 
      <Data> 213</Data>
   </Member> 
</Member> 
...
...

What I need in this case is:

<Member _pos="1" name="P1"> 
   <DataS> 123</Data>
   <Member _pos="1" name="P11"> 
   <Data> 678</DataS>
   </Member> 
   <Member _pos="2" name="P12"> 
      <Data> 213</Data>
        <Member _pos="1" name="P121"> 
          <Data> 666</Data>
        </Member> 
   </Member> 
</Member> 
<Member _pos="2" name="P2"> 
   <DataS> 4545</Data>
   <Member _pos="1" name="P21"> 
   <Data> 678</DataS>
   </Member> 
   <Member _pos="2" name="P22"> 
      <Data> 213</Data>
   </Member> 
</Member> 


The requirement is somehow described as follows:

1. Sort based on "_pos" in each level of tree
structure.

2. For each level, output the elements without
duplicate element.

It is involved the recursive call, sorting and merge.
If anyone has a good idea for this, please lete me
know. Very appreciated!!





__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree

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



<Prev in Thread] Current Thread [Next in Thread>