循环非闭合标签?

Looping through non-closed tags?

您好,提前致谢。

我正在尝试使用 VB.NET 中的 HTMLAgilityPack 循环遍历 table 中的 <td> 标签集合。它们包含在 <tr> 标签内(自然)。

我创建了下面的循环以根据需要访问 TR 和 TD:

For Each tr In table.SelectNodes(".//tr")
    For Each td In tr.SelectNodes("td")
        '(Handle td's here)
    Next
Next

问题是网站 HTML 在其模板中的某个特定 TD 上缺少结束标记。这导致在每个循环中拾取一个 3 TD,因为它将第 3 个 TD 视为包含所有其他 TD 的无限标签。例如:

<tr>
    <td>Div 1 info</td>
    <td>Div 2 info</td>
    <td>Div 3 info
    <td>Div 4 info</td>
    <td>Div 5 info</td>
</tr>

我的问题是如何解决此问题以循环遍历 TD 的完整集合?我试图检查 TR.Count 是否为 3 然后更新 tr(2).InnerHTML 在适当的地方插入一个标签。就是不更新。

如果您能提供任何帮助,我将不胜感激!谢谢!

设置 HtmlDocument.OptionFixNestedTags 属性:

Dim html = New HtmlDocument
html.OptionFixNestedTags = True
html.LoadHtml(File.ReadAllText(htmlFile))
Dim table As HtmlNode = html.DocumentNode
For Each tr In table.SelectNodes(".//tr")
    For Each td In tr.SelectNodes("td")
        Console.WriteLine(td.InnerText.Trim())
    Next
Next