我怎樣才能獲得所有內容<td>使用HTML Agility Pack標記?

c# html-agility-pack screen-scraping

所以我正在編寫一個可以進行小屏幕抓取的應用程序。我正在使用HTML Agility Pack將整個HTML頁面加載到名為docHtmlDocoument實例中。現在我想解析那個doc,尋找這個:

<table border="0" cellspacing="3">
<tr><td>First rows stuff</td></tr>
<tr>
<td> 
The data I want is in here <br /> 
and it's seperated by these annoying <br /> 's.

No id's, classes, or even a single <p> tag. </p> Just a bunch of <br />  tags.
</td> 
</tr> 
</table> 

所以我只需要獲取第二行內的數據。我怎樣才能做到這一點?我應該使用正則表達式還是其他什麼?

更新:這是我加載我的doc

<table border="0" cellspacing="3">
<tr><td>First rows stuff</td></tr>
<tr>
<td> 
The data I want is in here <br /> 
and it's seperated by these annoying <br /> 's.

No id's, classes, or even a single <p> tag. </p> Just a bunch of <br />  tags.
</td> 
</tr> 
</table> 

一般承認的答案

由於您已經在使用Html Agility Pack,我建議您使用它提供的方法來查找所需的信息。有幾種方法可以導航文檔,但最簡潔的方法之一就是使用XPath 。在這種情況下,你可以使用這樣的東西:

HtmlDocument doc = new HtmlDocument();
doc.Load("input.html");
HtmlNode node = doc.DocumentNode
                   .SelectNodes("//table[@cellspacing='3']/tr[2]/td")
                   .Single();
string text = node.InnerText;




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因