2009-04-15 47 views
0

什麼是解決這一問題的最有效的方式: 我已經走過了XML文件,並創建了以下一組鏈接(字符串)的列表:的Java:走過樹與樹

  • A> B> ç
  • A> b> d
  • 一個>˚F> [I]

和現在正在嘗試將XML重建成其原始結構:

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

任何幫助真的很感謝!

回答

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 s的樹,並使用相同的結構來寫退了出去。

0

您需要存儲更多關於原始XML結構的信息。例如,這3個列表沒有關於子節點順序的信息。

0

我會使用樹型數據結構來保存第一步中的元素(比如亞光解釋here)。

而你的表示對我來說還不清楚,你如何區分標籤和元素?由於i與標籤位於同一列表中,但不是標籤。

0

集合不保存文檔順序。您想要以基於範圍的表格編碼(pre/post/size/level/kind)或沿線的某些東西,基於前綴的架構(如ORDPATH)或基於指針(例如parent/leftsibl/rightsibl/firstchild/node編碼)跟蹤樹結構。