HTMLAgilityPack跳过HTML表格标题

时间:2014-08-10 17:52:53

标签: c# html-agility-pack

我有一个如下的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)方法对我不起作用。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望跳过<tr>后代节点<caption>(外<tr>标记内的最后<table>)。在这种情况下,我们可以使用XPath仅选择不<tr>的{​​{1}},如下所示:

<caption>