2010-11-18 31 views
2

這是我的要求 我需要反序列化一個對象,然後我需要做一些XML解析(我知道這聽起來是怎樣的)
因此,這裏是我的代碼XmlTextReader的舉下手

XmlTextReader myFileReader = new XmlTextReader(path); 
XmlSerializer serializer = new XmlSerializer(typeof(MyType)); 
MyType par = serializer.Deserialize(myFileReader) as MyType; 

XElement qListenerParXml = XElement.Load(qListenerPar); 

當我嘗試再次加載閱讀器我得到異常,因爲閱讀器光標在最後。 我的問題是我如何返回到開始?

+1

自.NET 2.0以來,'new XmlTextReader'已被棄用。您應該使用'XmlReader.Create'來代替。然後,您可以針對'MemoryStream'或其他可以重新定位的其他類型的流創建閱讀器。 – 2010-11-18 20:05:43

回答

10

XmlTextReader是僅前向的,不能倒回數據上的光標。

您可以通過使用新實例XmlTextReader再次查看數據或將其作爲XmlDocument加載,從而實現此目的。

+0

hhhhmmmm ...謝謝,所以我的其他選擇是再次加載它? – UshaP 2010-11-18 19:24:38

+1

@UshaP - 或者將其作爲「XmlDocument」隨機訪問。使用'XmlReader'類可以獲得更好的性能,但不會隨機訪問。 – 2010-11-18 19:34:00