-1
我有一個asp.net 2.0網站。 我正在使用Deserialize方法來反序列化xml。 我得到這個錯誤在執行xml的DeSerialization時遇到錯誤「xml文檔(1 40)有錯誤」
「有XML文檔中的錯誤(1 40)」
public List<Test_XML> DeSerializeObject(string pstrXML)
{
List<Test_XML> _obj = new List<Test_XML>();
try
{
if (!string.IsNullOrEmpty(pstrXML))
{
XmlSerializer _xmlSerializer = new XmlSerializer(typeof(List<Test_XML>));
StringReader _strReader = new StringReader(pstrXML);
_obj = (List<Test_XML>)_xmlSerializer.Deserialize(_strReader);
}
return _obj;
}
catch (Exception e)
{
throw e;
}
finally
{
_obj = null;
}
}
您可能想要包含該位XML文檔。 – NomadTraveler
你也可以快速檢查它,在瀏覽器中打開你的XML,如果它打開正確,那麼你可能需要查看代碼,但我想你的XML有問題。 –
此外,我懷疑錯誤消息實際上包含比這更多的信息。你可以通過刪除毫無意義的try/catch/finally塊來讓你的方法縮小一半大小 - 它基本上等同於擁有try塊的主體(但更糟糕的是,當你重新拋出異常時,你實際上正在失去有用的堆棧跟蹤信息)。你很少需要像這樣將變量設置爲null - 當然不是方法結尾的局部變量。 –