使用 Html Agility Pack 从特定节点捕获内部文本
Using Html Agility Pack to capture inner text from a specific node
我正在尝试从以下 html 片段中获取文本 "Record No: 1" 和两个日期:
<table class="Report">
<tbody>
<tr>
<td>
<font><b>Record No: 1</b><br>
<i>Original Date</i>: 12/16/2011<br>
<i>Original Entered Date</i>: 12/16/2011
<br>
<br>
</font>
</td>
</tr>
</tbody>
<table>
使用 HTMLAgilityPack 和以下代码我已经能够获取记录号,但不确定如何获取日期。
var recordNum =report.Descendants()
.Where(a=>a.InnerText.Contains("Record No:"))
.Where(a => a.Name == "#text")
.First().InnerText;
我需要以某种方式获取 "Original Date" 节点之后的文本。
Somehow I need to be able to grab the text following the "Original Date" node.
您可以将以下 XPath 用于位于 i
元素之后的 select 文本节点,其中内部文本等于 'Original Date' :
//i[.='Original Date']/following-sibling::text()
使用 XPath 如下,例如:
var doc = new HtmlDocument();
....
var xpath = "//i[.='Original Date']/following-sibling::text()";
var result = doc.DocumentNode.SelectSingleNode(xpath);
Console.WriteLine(result.InnerText);
输出:
: 12/16/2011
我正在尝试从以下 html 片段中获取文本 "Record No: 1" 和两个日期:
<table class="Report">
<tbody>
<tr>
<td>
<font><b>Record No: 1</b><br>
<i>Original Date</i>: 12/16/2011<br>
<i>Original Entered Date</i>: 12/16/2011
<br>
<br>
</font>
</td>
</tr>
</tbody>
<table>
使用 HTMLAgilityPack 和以下代码我已经能够获取记录号,但不确定如何获取日期。
var recordNum =report.Descendants()
.Where(a=>a.InnerText.Contains("Record No:"))
.Where(a => a.Name == "#text")
.First().InnerText;
我需要以某种方式获取 "Original Date" 节点之后的文本。
Somehow I need to be able to grab the text following the "Original Date" node.
您可以将以下 XPath 用于位于 i
元素之后的 select 文本节点,其中内部文本等于 'Original Date' :
//i[.='Original Date']/following-sibling::text()
使用 XPath 如下,例如:
var doc = new HtmlDocument();
....
var xpath = "//i[.='Original Date']/following-sibling::text()";
var result = doc.DocumentNode.SelectSingleNode(xpath);
Console.WriteLine(result.InnerText);
输出:
: 12/16/2011