解决此问题的最有效方法是什么: 我遍历了一个XML文件并创建了以下一组链接(String)列表:
现在我正在尝试将XML重建为其原始结构:
<a>
<b>
<c/><d/>
</b>
<f>i</f>
</a>
真的很感激任何帮助!
答案 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}} - 编码