2011-05-30 26 views
1

我是一名學生,負責解析僞XML文件(基本上編碼我們自己的解析器)數據,存儲檢索到的元素和數據值並顯示(下一個實驗將添加「添加,更改,刪除」功能)包含來自XML文件的數據的類設計

我正在考慮在某種多維列表中考慮將此讀入信息,因爲它是默認動態的。我在SO上讀過其他一些問題的建議是創建一個「父節點」類,並將其存儲在一個數組中。

我的問題是,在代碼時間沒有辦法知道父節點將有多少個子節點。這可能是 -

<parent> 
    <child1>data value</child1> 
    <child2>data value</child2> 
    ...etc 
</parent> 

<parent> 
    <child1data value</child1> 
</parent> 

我真的不能相信,我怎麼能代碼的類有變數的未知量。

+0

看來你一直在使用SO作爲「論壇」來反彈想法而不是問答網站(8個問題,許多好答案0接受答案)。回覆評論是可以的,但最終你應該得到答案。您可以使用綠色檢查來表示哪個答案「解決」了您的問題。 – user7116 2011-05-30 18:02:28

+0

我實際上不知道如何將我的問題標記爲答案,會是主要的問題(也沒有意識到我可以......是的,我是一個小菜,哦!) – 2011-05-30 18:07:33

+0

這就是我想的。如果你點擊你的名字,它會把你帶到你的個人資料中,其中列出了你所有的問題。另請查看[常見問題](http://stackoverflow.com/faq),它爲新手解答了很多問題。歡迎來到SO! – user7116 2011-05-30 18:12:57

回答

2

爲什麼不只是使用List<List<T>>?或者可能是Dictionary<string, List<T>>,假設你的父節點有唯一的標識符?

+0

可能需要走這條路。截至目前,父節點不是唯一的,所以這可能更適合我需要的東西。 – 2011-05-30 18:03:10

0

如果節點在某些方面是唯一的,您可以保留節點列表或節點字典。

0

.NET集合本質上是動態的。您不需要事先知道您的收藏將保存多少物品。你自己的班級「家長」的集合將工作。每個父類本身都會實現一組「孩子」。你可以將它們定義爲任何你想要的。

更好的做法是讓你的類可以繼續使用,因此當你將它保存到一個XML文件時,它已經是格式正確的XML結構。讀取這些數據需要反序列化,它會爲您填充所有內容。檢查this out

+0

我其實認爲這可能是我們長期以來的工作,但直到我真的得到下一個實驗室纔會知道。 – 2011-05-30 17:57:31

0

你應該管理你的自我,但只是想,你有父母作爲根和父母有名單的孩子。問題在哪裏? :)