什么是解决这一问题的最有效的方式: 我已经走过了XML文件,并创建了以下一组链接(字符串)的列表:的Java:走过树与树
- A> B> ç
- A> b> d
- 一个>˚F> [I]
和现在正在尝试将XML重建成其原始结构:
<a>
<b>
<c/><d/>
</b>
<f>i</f>
</a>
任何帮助真的很感谢!
什么是解决这一问题的最有效的方式: 我已经走过了XML文件,并创建了以下一组链接(字符串)的列表:的Java:走过树与树
和现在正在尝试将XML重建成其原始结构:
<a>
<b>
<c/><d/>
</b>
<f>i</f>
</a>
任何帮助真的很感谢!
您可能不希望使用列表作为此数据结构。您最好创建一个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
s的树,并使用相同的结构来写退了出去。
您需要存储更多关于原始XML结构的信息。例如,这3个列表没有关于子节点顺序的信息。
我会使用树型数据结构来保存第一步中的元素(比如亚光解释here)。
而你的表示对我来说还不清楚,你如何区分标签和元素?由于i
与标签位于同一列表中,但不是标签。
集合不保存文档顺序。您想要以基于范围的表格编码(pre/post/size/level/kind
)或沿线的某些东西,基于前缀的架构(如ORDPATH
)或基于指针(例如parent/leftsibl/rightsibl/firstchild/node
编码)跟踪树结构。