2016-11-11 26 views
2

我试图抓住文本“备案号:1”捕捉内部文本从以下HTML和两个日期片段:使用HTML敏捷性包从一个特定节点

<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; 

不知何故,我需要能够抓住“原始日期”节点后面的文本。

回答

0

不知怎的,我需要能够抓住“原始日期”节点后面的文本。

您可以使用以下XPath选择位于后i元素文本节点,其中内文等于“原始日期”:

//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); 

Demo

输出:

: 12/16/2011 
+0

似乎总是回来跟空。 –