axWebBrowserに表示したウェブページのテーブルの解析をしようとしているのですが、
HTMLパースの良い方法がわかりません。

doc = (HTMLDocument)axWebBrowser.Document;

IHTMLElementCollection allTable = doc.getElementsByTagName("table");
IEnumerator ee = allTable.GetEnumerator();

while (ee.MoveNext())
{
IHTMLElement elem = (IHTMLElement)ee.Current;
df.writeline(elem.innerText); //df = DebugForm
}

現在はこのようにして、ウェブページのすべてのテーブル要素を抜き出すところまで行ったのですが、
tableの入れ子になっている場合は、おかしな表現になってしまいます。
例えば<table><tr><td>AAA<table><tr><td>BBB</td></tr></table></td></tr></table>だと
AAA
BBB
BBB
と表示されます。このようにテーブルの入れ子になっている場合に要素内容が重複してしまいます。