提取html节点的<span>部分

时间:2017-05-31 20:00:48

标签: c# html-agility-pack

我有一行是html返回的一部分:

<h1 id="pgName" class="floatLVal tight">IBM Dividend Yield (TTM):</h1><span id="pgNameVal">3.74% for May 31, 2017</span>

我读如下。我看到了节点,但我无法在任何(TTM):字段中看到singleNode之后的任何文字,例如,innerhtml的一部分。我想提取2017年5月31日的#34; 3.74%&#34;部分。

提取此信息的正确方法是什么?

HtmlDocument document = ... 
var singleNode = document.DocumentNode.SelectSingleNode("//h1[@class='floatLVal tight']");

1 个答案:

答案 0 :(得分:1)

span标记未位于h1标记中。获得h1

的下一个兄弟节点
var h1 = document.DocumentNode.SelectSingleNode("//h1[@class='floatLVal tight']");
var span = h1.NextSibling;
var text = span.InnerHtml; // "3.74% for May 31, 2017"

或者通过id获取span节点:

var span = document.DocumentNode.SelectSingleNode("//span[@id='pgNameVal']");
var text = span.InnerHtml; // "3.74% for May 31, 2017"