See the question and my original answer on StackOverflow

Html Agility Pack does not generally support overlapping tags by design. However, you can tweak it like this:

HtmlDocument doc = new HtmlDocument();
HtmlNode.ElementsFlags.Add("table", HtmlElementFlag.CanOverlap | HtmlElementFlag.Empty);
doc.LoadHtml(htmlString); 

In this case, you instruct the library to treat TABLE as an overlapping tag. As a side note, FORM is the only TAG by default defined as an overlapping tag (see the reason here: HtmlAgilityPack -- Does <form> close itself for some reason?).

However, this does not come as a free lunch...

It means, the library will now see what's inside the table and closing table tags as a pure text element. So all the tags inside the parsed table will not be programmatically accessible, you won't see it in the DOM, you won't see it using XPATH, etc... but that may be enough for your needs.