我有一个Activity类,它有子子列表的子列表,每个子活动都有自己的列表等等。
public class Activity
{
private Activity parent;
private ArrayList<Activity> children = new ArrayList();
private String name;
}
是否有一种有效的方法可以将其解析为XML文件,如下所示:
<Activity name="1">
<children>
<Activity name="2>
<children>
<Activity name="3">
</children>
</children>
<Activity name ="4">
等等?
答案 0 :(得分:1)
最简单的序列化方法是使用XMLStreamWriter。这假设您的唯一目标是获取POJO并将其转换为XML格式作为端点,而不是将其作为输入,而不是更适合更复杂的模型(如JAXB)。
您将编写器实例化为文件,然后写下来。
XMLStreamWriter writer; //instantiate this based on your output format, see the tutorial for example
然后您可以使用此递归方法填充XML。
public void writeActivity(Activity activity) {
writer.writeStartElement("activity");
writer.writeAttribute("name", activity.getName());
writer.writeStartElement("children");
for(Activity child : activity.getChildren()) {
writeActivity(child);
}
writer.writeEndElement(); //ends element children
writer.writeEndElement(); //ends element activity
}
根据您是否需要空的“children”节点,您可以执行if语句,依此类推。