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