私は過去にHtmlAgilityPackを使って.NETのHTMLを解析しましたが、DOMモデルのみを使用しているというのは嫌いです。大規模な文書やネスティングレベルが高い文書では、スタックのオーバーフローやメモリの例外を突く可能性があります。一般に、DOMベースの解析モデルでは、ストリーミングベースのアプローチよりも大幅に多くのメモリが使用されます。これは、通常、HTMLを使用するプロセスでは、一度に利用できる要素がほんの数だけ必要となるためです。//github.com/MindTouch/SGMLReader他の人が言っているように、HTMLはXMLの正しい整形ルールに従わないという問題があります。そのため、本質的に解析するのは難しいですが、通常SgmlReaderはかなり良い仕事をします。