2016-11-11 25 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

似乎總是回來跟空。 –