2013-01-15 82 views
-1

我已經分配了任務來爲xml讀取器創建類結構!到目前爲止,我所知道的是一個簡單的xml文件有兩個主要的類。元素和屬性。我可以使用內置的c#xml讀取器來讀取一個xml文件!但我的代碼應該能夠識別XML元素,結構,以及屬性..我到目前爲止確定了主要的兩個類,但我現在堅持這一點。如果有人可以解釋一種可能的理論或方法,因爲我是新手編程,這將不勝感激。設計XML閱讀器

+2

你爲什麼要寫這個? .NET框架已經對此任務提供了很好的支持,請參閱[XDocument](http://msdn.microsoft.com/zh-cn/library/system.xml.linq.xdocument.aspx)。 –

+0

這實際上是一項任務,讓我更好地瞭解OOP編程! ( –

+1

)在這種情況下,我建議你自己完成這個任務,否則它會毫無意義。如果你仍然想欺騙,只需看看'XDocument'的類層次結構。 –

回答

0

XML讀取器和XML文檔之間存在差異。 他們仿照不同的模式。

.NET中的讀取器僅用於讀取流並在遇到某些元素/屬性或其他類型的節點時停止。如果你想快點,或者你有一個你不想保存在內存中的大流,這可能是實用的。

XML文檔讀取整個流並實例化一個代表它的對象模型。 如果您需要了解結構並將其放入內存中,這很實用。

如果你要實現讀者,你可以創建像ReadNext()這樣的方法來讀取並返回找到的下一個節點。對於初學者,我會堅持解析XML元素及其屬性,而不是評論,命名空間和其他更困難的事情。

0

這些是如何設計的OOP方式的 「XML閱讀器」 三個非常好的例子:

它們映射爲XML文檔,一個XML文檔所包含的部分以及一個XML文檔的結構到相應類的結構,並且它們引入了構建一個XML文檔的方法d分析一個XML文檔。

如果您想鍛鍊並建立自己的班級結構而沒有「作弊」(即查看其他人如何做),您可以從檢查XML specification開始,並確定XML文檔可包含的元素/部分(元素,屬性,數據類型等),很可能許多這些元素應該在您的設計中具有相應的類。接下來,你必須考慮你想要的能夠使用XML來執行。這也會影響你的設計。

作爲一般規則,您應始終記住,生成的API應易於使用。您的目標「受衆」可能是知道XML的開發人員,因此您的類應該反映他們對XML的瞭解(名稱應該類似)。

0

我認爲你應該使用完善的API來滿足你的目的。除此之外,我認爲你可以使用責任鏈設計模式。