htmllagilitypack跳过HTML表格标题
本文关键字:标题 表格 HTML 跳过 htmllagilitypack | 更新日期: 2023-09-27 18:17:25
我有一个像下面这样的html表格:
<table>
<caption>Table 2</caption>
<tr><td>hd1</td><td>hd2</td></tr>
<tr><td>val01</td><td>val02</td></tr>
<tr>
<td colspan="2">
<table>
<caption>Subtable 2</caption>
<tr><td>subval01</td><td>subval02</td></tr>
</table>
</td>
</tr>
</table>
编辑下面是我的代码:
foreach (HtmlNode rows in htmltable.SelectNodes("tr"))
{
DataRow dr = dt.NewRow();
int iRow = 0;
if (!rows.InnerHtml.Contains("<caption>"))
{
foreach (HtmlNode cell in rows.SelectNodes("td"))
{
iRow++;
dr[iRow] = cell.InnerText;
}
}
dt.Rows.Add(dr);
}
我的代码识别<caption>
作为行并选择它。我不明白如何在解析时跳过标题。所以我只能解析行。Skip(1)
方法不适合我
如果我理解正确,您要跳过具有后代节点<caption>
的<tr>
(外部<table>
标记内的最后一个<tr>
)。在本例中,我们可以使用XPath只选择没有<caption>
的<tr>
,如下所示:
foreach (HtmlNode rows in htmltable.SelectNodes("tr[not(.//caption)]"))
{
DataRow dr = dt.NewRow();
.....
.....
dt.Rows.Add(dr);
}