I have been trying to reorder xml elements based on their child getTextContent value, but everything that I tried only worked for siblings nodes
Basically, I have this XML:
<order>
<item>
<item-id>d54829d52c3f2810VgnVCM1000001af614ac</item-id>
<item-order>3</item-order>
</item>
<item>
<item-id>b54829d52c3f2810VgnVCM1000001af614ac</item-id>
<item-order>1</item-order>
</item>
<item>
<item-id>f54829d52c3f2810VgnVCM1000001af614ac</item-id>
<item-order>2</item-order>
</item>
</order>
And I would like to achive this result, ordering using "item-order":
<order>
<item>
<item-id>b54829d52c3f2810VgnVCM1000001af614ac</item-id>
<item-order>1</item-order>
</item>
<item>
<item-id>f54829d52c3f2810VgnVCM1000001af614ac</item-id>
<item-order>2</item-order>
</item>
<item>
<item-id>d54829d52c3f2810VgnVCM1000001af614ac</item-id>
<item-order>3</item-order>
</item>
</order>
I have been trying some implementations like this example based on the website below that I found on internet, but it does not work.
http://programmatica.blogspot.com/2006/12/sorting-xml-in-java.html How to sort XML elements by value of attributes in Java?
static class MyComparator4 implements Comparator {
public int compare(Object arg0, Object arg1) {
if (arg0 instanceof Element && arg1 instanceof Element) {
Element e0 = (Element) arg0;
Element e1 = (Element) arg0;
e0.getChildNodes().item(e0.getChildNodes().getLength()-1).getTextContent().compareTo(e1.getChildNodes().item(e1.getChildNodes().getLength()-1).getTextContent());
} else {
return ((Node) arg0).getNodeName().compareTo(
((Node) arg1).getNodeName());
}
}
}
Any help is appreciate. Thank you in advance