Html 通过非闭合标签循环?

Html 通过非闭合标签循环?,html,vb.net,html-agility-pack,Html,Vb.net,Html Agility Pack,你好,先谢谢你 我试图在VB.NET中使用HTMLAgilityPack来循环表中的标记集合。它们包含在标记中(自然) 我已创建了以下循环,以根据需要访问TR和TD: For Each tr In table.SelectNodes(".//tr") For Each td In tr.SelectNodes("td") '(Handle td's here) Next Next 问题是,网站的HTML在其模板中的某个特定TD上缺少一个结束标记。这导致在每个环路

你好,先谢谢你

我试图在VB.NET中使用HTMLAgilityPack来循环表中的
标记集合。它们包含在
标记中(自然)

我已创建了以下循环,以根据需要访问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>

第一组资料
第2组资料
第3组资料
第4组资料
第5组资料
我的问题是,我如何解决这一问题,以循环整个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