2011-04-05 36 views
0

如何用HtmlAgilityPack检查null?我得到“属性或索引器”HtmlAgilityPack.HtmlNode.HasChildNodes'不能被分配给 - 它是只读的“与以下。用HtmlAgilityPack检查为空

if (Node.Element("TD").HasChildNodes = DBNull.Value) 

我“得到”对象引用未设置为对象的实例。 “与

if (Node.Element("TD").HasChildNodes) 

回答

1

首先,=运算符是赋值运算符,而不是比较操作符(==)。在你的第一个例子中,你要转让DBNull.ValueHasChildeNodes,只读属性,而不是把它比作一个值。

其次,你不考对DBNull.Value,而是针对nullDBNull.Value是测试使用ADO.NET数据库返回的项目值时使用。对于所有其他情况下,你应该使用null

因此,测试应该是:

if (Node.Element("TD").HasChildNodes == null) 
+0

,也许这是'=',因为它是vb.net? – 2011-04-05 19:25:38

+0

@Bala - 用'if()'而不用'Then'? – Oded 2011-04-05 19:26:20

+0

嗨我试过如果(Node.Element(“TD”)。HasChildNodes == null),我得到“表达式的结果总是'假',因为'bool'类型的值永远不等于'null ''bool' – n3wb13 2011-04-05 19:26:56