Java 使用Simple将不同对象的ArrayList写入XML文件
我有两门课:Java 使用Simple将不同对象的ArrayList写入XML文件,java,xml,Java,Xml,我有两门课: package main; public class A { protected String name; protected int age; public A(String name, int age) { this.name = name; this.age = age; } } 以及将这些类的实例添加到ArrayList的第三个类: package main; import java.util.ArrayL
package main;
public class A {
protected String name;
protected int age;
public A(String name, int age) {
this.name = name;
this.age = age;
}
}
以及将这些类的实例添加到ArrayList的第三个类:
package main;
import java.util.ArrayList;
import java.util.List;
public class Arr {
List<Object> lst = new ArrayList<Object>();
public void add_to_array(Object o) {
lst.add(o);
}
}
并尝试将它们写入XML文件:
package main;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class XML {
public void create(List<Object> lst) throws IOException {
try {
Serializer serializer = new Persister();
File result = new File("example.xml");
for (int i = 0; i < lst.size(); ++i) {
serializer.write(lst.get(i), result);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
<b>
<v>1</v>
<v2>21</v2>
<v3>42</v3>
</b>
packagemain;
导入org.simpleframework.xml.Serializer;
导入org.simpleframework.xml.core.Persister;
导入java.io.File;
导入java.io.IOException;
导入java.util.List;
公共类XML{
公共无效创建(列表lst)引发IOException{
试一试{
Serializer Serializer=new Persister();
文件结果=新文件(“example.xml”);
对于(inti=0;i
我得到以下XML文件:
package main;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class XML {
public void create(List<Object> lst) throws IOException {
try {
Serializer serializer = new Persister();
File result = new File("example.xml");
for (int i = 0; i < lst.size(); ++i) {
serializer.write(lst.get(i), result);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
<b>
<v>1</v>
<v2>21</v2>
<v3>42</v3>
</b>
1.
21
42
但是,我打算得到以下结构:
<arr>
<lst>
<name>a</name>
<age>22</age>
</lst>
<lst>
<v>1</v>
<v2>21</v1>
<v3>42</v3>
</lst>
</arr>
A.
22
1.
21
42
我在简单的文档中只找到了关于具有相同对象的数组的信息,而没有找到关于不同对象的信息。下面的循环使用列表中的最后一个元素覆盖了
example.xml
的内容
for (int i = 0; i < lst.size(); ++i) {
serializer.write(lst.get(i), result);
}
for(int i=0;i
将循环块的
替换为序列化程序。写入(lst,result)代码>会帮你的。我试过了。它导致错误:org.simpleframework.xml.transform.TransformException:不支持类java.util.ArrayList的转换