什麼是解決這一問題的最有效的方式: 我已經走過了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
編碼)跟蹤樹結構。