Java:解析为XML对象,该对象具有包含其他对象作为字段的列表

时间:2017-05-03 20:56:40

标签: java xml

我有一个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">

等等?

1 个答案:

答案 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语句,依此类推。

相关问题