gpt4 book ai didi

java - 使用 SimpleXML 序列化时如何保留列表中元素的顺序?

转载 作者:行者123 更新时间:2023-12-02 11:06:36 24 4
gpt4 key购买 nike

我想使用 SimpleXML 序列化列表,以便稍后可以再次反序列化它。我需要保留元素的顺序,或者至少每次序列化它时都达到相同的顺序,以便我可以对其进行排序,就像简单地保留反序列化列表一样。

顺序很重要,因为它是用于在 map 上绘制路径并作为实际行驶路径的地理点列表。如果不保留顺序,该路径将毫无意义。

我不需要使用 SimpleXML,但我已经使用它来反序列化其他内容,并且除了保留顺序之外的所有内容都已经可以工作,因此我想避免学习使用另一个序列化程序来执行此操作的开销。此外,SimpleXML 还可以与 Android 2.3.3 配合使用,这是必须的,因为这是针对 Android 应用程序的。

我知道Android附带的解析器和序列化器,我实际上使用了解析器,但我还没有对序列化器做任何事情,所以如果有一个简单的方法来实现,这又会是相当大的开销我需要 SimpleXML 做什么。

请注意,我说的是保留列表中元素的顺序,而不是类的元素,类中有一个标签,与此相比,这似乎是一个相当常见的问题来我的。

问候

最佳答案

订单已保留(您只需使用 @ElementList 对其进行注释),如以下示例所示:

import java.util.Arrays;
import java.util.List;

import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.core.Persister;

public class SimpleXMLTest {

public static void main(final String[] args) throws Exception {
Persister persister = new Persister();

ModelClass model = new ModelClass(Arrays.asList("Item1", "Item2", "Item3"));

persister.write(model, System.out);
}
}

@Root
class ModelClass {

@ElementList
private List<String> list;

public ModelClass() {
}

public ModelClass(final List<String> list) {
super();
this.list = list;
}

public List<String> getList() {
return list;
}

}

输出将是:

<modelClass>
<list class="java.util.Arrays$ArrayList">
<string>Item1</string>
<string>Item2</string>
<string>Item3</string>
</list>
</modelClass>

关于java - 使用 SimpleXML 序列化时如何保留列表中元素的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11172842/

24 4 0
文章推荐: java.security.NoSuchAlgorithmException : class configured for SSLContext
文章推荐: java - 从 List Java 获取一些值