Simple XML
- xml_sample.xml
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<ItemList>
<Entry>
<Key>1</Key>
<Value>aaaaaaaaaa</Value>
</Entry>
<Entry>
<Key>2</Key>
<Value>first value</Value>
</Entry>
<Entry>
<Key>1</Key>
<Value>first value</Value>
</Entry>
</ItemList>
<ClassList>
<Entry>
<Key>4</Key>
<Value>first value</Value>
</Entry>
<Entry>
<Key>3</Key>
<Value>first value</Value>
</Entry>
<Entry>
<Key>5</Key>
<Value>aaaaaaa</Value>
</Entry>
</ClassList>
</PropertyList>
- JAVA
package com.company;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
import java.io.File;
import java.util.Comparator;
import java.util.List;
@Root(name = "PropertyList", strict = false)
public class XMLModel {
@ElementList(name = "ItemList")
private List<Item> mItemList;
@ElementList(name = "ClassList")
private List<Item> mClassList;
private static class Item {
@Element(name = "Key")
private Integer key;
@Element(name = "Value")
private String value;
}
public static XMLModel getInstance() throws Exception {
Serializer serializer = new Persister();
File source = new File("xml_sample.xml");
XMLModel xmlModel = serializer.read(XMLModel.class, source);
xmlModel.mItemList.sort(new Comp().reversed());
xmlModel.mClassList.sort(new Comp().reversed());
return xmlModel;
}
private static class Comp implements Comparator<Item> {
@Override
public int compare(Item lhs, Item rhs) {
int lhsKeyValue = lhs.key;
int rhsKeyValue = rhs.key;
if (lhsKeyValue == rhsKeyValue) {
return -1;
} else if (lhsKeyValue < rhsKeyValue) {
return -1;
}
return 0;
}
}
}