2012-11-27 101 views
1

我需要一些關於如何使用HTML Agility Pack從HTML中提取數值的幫助。 (部分)HTML是:從HTMLAgilityPack中選擇數值從HTMLAgilityPack中選擇數值

<HTML> 
<BODY bgcolor="FFFFFF" onLoad="window.document.forms[0].p_wwwparam.focus();"> 
<BR> 
<DIV ALIGN="CENTER"> 
<CENTER><U><font color="800040"><H2>Password Reset Form</H2></font></U></CENTER> 
<BR> 
<TABLE > 
<TH ALIGN="CENTER" COLSPAN="2"><FONT COLOR="800040">Verification details for 
</FONT>WSCCD03</TH> 
<TR> 
<TD>EIN: </TD> 
<TD>987654321</TD> 
</TR> 
<TR> 
<TD>Full name: </TD> 
<TD>Bob Bobbity</TD> 
</TR> 
</TABLE> 
...... Rest of document 

我需要提取從以下含有一種在TD「的值EIN:」因此在這種情況下,我需要提取「987654321」

任何幫助將是非常感激。

回答

2

這應該工作

var text = doc.DocumentNode.SelectSingleNode("//td[text()='EIN: ']/../td[2]") 
       .InnerText; 
+2

作品魅力,謝謝你親切:) –

0

你可以這樣做:

HtmlDocument doc = new HtmlWeb().Load("http://www.yoursite.com/yourpage.html"); 
HtmlNodeCollection trs = doc.DocumentNode.SelectNodes(".//tr"); 
HtmlNodeCollection tds = trs[0].SelectNodes(".//td"); 
var text = tds[1].InnerText; 
0

這裏有一個簡單的代碼,將讓你得到第二個TD值:

var htmlDoc = new HtmlDocument(); 

// Point to your HTML doc content here... :) 
htmlDoc.Load(@"C:\Libs\HtmlAgilityPack.1.4.0\htmldocument.html"); 

var node = htmlDoc.DocumentNode.SelectNodes("//td").Skip(1).Take(1).Single(); 

System.Console.WriteLine(node.InnerText);