Java:遍历树到树

时间:2009-04-15 13:01:18

标签: java xml parsing

解决此问题的最有效方法是什么: 我遍历了一个XML文件并创建了以下一组链接(String)列表:

  • a> b> ç
  • a> b> d
  • a> f> [I]

现在我正在尝试将XML重建为其原始结构:

<a>
 <b>
  <c/><d/>
 </b>
 <f>i</f>
</a>

真的很感激任何帮助!

4 个答案:

答案 0 :(得分:3)

您可能不希望将列表用作此数据结构。您可能最好创建一个Node类型或类似的类型,它可以包含文本和子节点,以便您可以将数据存储在节点的树/层次结构中。像这样简单的东西可以解决这个问题:

public class Node {
    private String text;
    private List<Node> children = new ArrayList<Node>();

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public List<Node> getChildren() {
        return children;
    }

}

当您在文件中读取时,创建这些Node的树应该是微不足道的,并使用相同的结构将其写回。

答案 1 :(得分:0)

您需要存储有关原始XML结构的更多信息。例如,这3个列表没有关于子节点顺序的信息。

答案 2 :(得分:0)

我会在第一步中使用树数据结构来保存元素(如matt解释here)。

您的陈述对我来说不清楚,您如何区分标签和元素?由于i与标记位于同一列表中,但不是标记。

答案 3 :(得分:0)

集合不保留文档顺序。您希望以基于范围的表格编码(pre/post/size/level/kind)或其他内容跟踪树结构,基于前缀的架构(如ORDPATH)或基于指针(例如a { {1}} - 编码