2012-07-26 67 views
-1

我需要調製表達式的幫助。 (使用c#)如何獲得TR中的TD的正則表達式

在html源代碼中,我得到了類似這樣的東西。

[...] 
<TR class=tblDataGreyNH> 
<TD style="TEXT-ALIGN: right; FONT-WEIGHT: bold" class=tblHeader>Total Time </TD> 
<TD>07:47 </TD> 
<TD>04:48 </TD> 
<TD>00:00 </TD> 
<TD>00:00 </TD> 
<TD>07:42 </TD> 
<TD>00:00 </TD> 
<TD>00:00 </TD></TR> 
[..] 
<TR class=tblDataGreyNH nowrap> 
<TD>Total </TD> 
<TD>20:17 </TD></TR> 
<TR style="FONT-WEIGHT: bold" class=tblDataWhiteNH nowrap> 
<TD>Total Time </TD> 
<TD width=75>20:17 </TD></TR></TBODY></TABLE></TD> 
<TD colSpan=3> 
... 

classnames總是相同的。 我需要將所有TD的解析成字符串。 tblDataGreyNH是重要類。

這裏是整個表格,td在裏面。 (如果你需要的一些)

<table class="tblList"> 
<form action="/interface/timesheet/ViewUserTimeSheet.php" method="get" name="timesheet"></form> 
<tbody> 
<tr> 
<tr class="tblHeader"> 
<tr class="tblHeader"> 
<tr class="tblDataWhiteNH"> 
<tr class="tblDataWhiteNH"> 
<tr class="tblHeader"> 
<tr class="tblDataGreyNH"> 
<td class="tblHeader" style="font-weight: bold; text-align: right"> Total Time </td> 
<td> 07:47 </td> 
<td> 04:48 </td> 
<td> 00:00 </td> 
<td> 00:00 </td> 
<td> 07:42 </td> 
<td> 00:00 </td> 
<td> 00:00 </td> 
</tr> 
<tr class="tblDataWhiteNH"> 
<tr class="tblHeader"> 
<tr valign="top"> 
</tbody> 
</table> 

我希望有人能夠幫助我解決這個問題。 正則表達式似乎不可能爲我理解。 我無法掌握那些ReGeX的基本知識!? :/

回答

3

不要使用正則表達式的HTML,我建議檢查出HtmlAgilityPack

很簡單:

var doc = new HtmlDocument(); 
doc.LoadHtml("...your sample html..."); 

// all <td> tags in the document 
foreach (HtmlNode td in doc.DocumentNode.SelectNodes("//td")) 
{ 
    Console.WriteLine(td.InnerText); 
} 
0

你不應該使用正則表達式來解析HTML(很多裁判之一:link

存在一個很好的名爲HtmlAgilityPack的.NET庫,我會推薦它。