以下是我的html頁面:
使用Html Agility Pack,我需要獲得主表主流。在下表中的含義,主表下只有一個主表和僅3個主行。
我需要得到3的計數,不包括所有內部TR。
請幫忙。
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Untitled Page</title>
</head>
<body style="width: 800">
<table width="700" style="background-repeat: no-repeat;">
<tr>
<td>
<table width="700">
<tr>
<td width="20%"></td>
<td width="60%" align="center" style="font-family: Arial; font-size: 12pt;"> SUMMARY </td>
<td width="20%"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width="700">
<tr>
<td width="20%"></td>
<td width="60%" align="center" style="font-family: Arial; font-size: 12pt;"> SUMMARY </td>
<td width="20%"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width="700">
<tr>
<td width="20%"></td>
<td width="60%" align="center" style="font-family: Arial; font-size: 12pt;"> SUMMARY </td>
<td width="20%"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
代碼:
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlFile);
int count = 1;
HtmlNodeCollection tables = doc.DocumentNode.SelectNodes("//table");
foreach (HtmlNode table in tables)
{
var rows = doc.DocumentNode.SelectNodes("//tr");
//here i need to get those 3 rows only.
//but instead i am getting all inner TR also.
foreach (HtmlNode tr in rows)
{
}
}
您正在選擇所有表格。
嘗試只選擇身體的孩子的桌子,例如:
SelectSingleNode("//body/table");
然後,計算該節點中的TR。
或者,嘗試一步完成:
SelectNodes("//body/table/tr");