我有以下HTML结构:
<div class="sub-title">
<span class="ng-binding">יתרת עו"ש</span>
我想得到字符串";Ş
我试过了:
var Header = doc.DocumentNode.SelectNodes("//span[@class=ng-binding]");
Console.WriteLine(Header.ToString());
但我得了NullReferenceException
。我做错了什么?
这里有几个问题。
-
查询属性时,需要在属性值周围使用引号(单引号或双引号都可以(。所以你的代码应该是:
var Header = doc.DocumentNode.SelectNodes("//span[@class='ng-binding']");
-
SelectNodes
返回包含一个或多个HtmlNodes
的HtmlNodeCollection
,如果搜索未找到匹配项,则返回null。如果您只期望一个值,则需要使用0
的索引来获得第一个值。从那里,您需要使用.InnerText
从节点中获取文本值。所以你的代码应该是:Console.WriteLine(Header?[0].InnerText);
下面是一个工作演示:https://dotnetfiddle.net/nMS1Dg