2010-08-26 71 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

相关问题