2010-08-26 75 views
0

我想讀XmlReaderXDocument什麼是XML null屬性,以及如何在Linq-To-XML中處理它們?

//GetContentStructureReader() retrieves the reader from an external source 
XmlReader reader = GetContentStructureReader(); 
XDocument.Load(reader); 

我不斷收到以下異常與一個特定的數據源:

System.ArgumentNullException是由用戶代碼 消息=值未處理不能爲空。 參數名:值 源= System.Xml.Linq的 PARAMNAME =值 堆棧跟蹤: 在System.Xml.Linq.XAttribute..ctor(XName的名稱,對象的值) 在System.Xml.Linq.XContainer.ReadContentFrom (XmlReader r) at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r,LoadOptions o) at System.Xml.Linq.XDocument.Load(XmlReader reader,LoadOptions options) at System.Xml.Linq.XDocument。負載(XmlReader閱讀器)

因此,似乎在加載過程中,在某個時間點,XAttribute正在初始化爲空值。

什麼是XML中的空屬性?我試過檢查(6兆字節)源文檔來糾正數據,但徒勞無功,因爲我不知道我在找什麼樣的XML構造。

是否有解決方法?

回答

1

在加載文檔期間,空值不應顯示爲XAttribute的值。所以你看到的是意想不到的。您可以停止調試器中的異常以查看callstack和參數值(特別是XName名稱),這些參數可能有助於您在源文檔中查找屬性。 (你也可以嘗試((IXmlLineInfo)閱讀器)在你的窗口中的任何一個窗口上有讀者定義的 在任何情況下,.NET Framework中的XmlReader的默認實現都不應該導致這個問題。 ,您在哪裏/如何創建了傳遞給Load方法的XmlReader對象的實例?

+0

從這個問題開始移動並以另一種方式攻擊它,我無法將調試器附加到代碼行,因爲XmlReader是在第三方庫中創建的,接受這個是因爲調試的建議是可靠的。謝謝! – jevakallio 2010-10-28 18:54:13

相關問題