Ich habe HtmlAgilityPack in der Vergangenheit verwendet, um HTML in .Net zu analysieren, aber ich mag die Tatsache nicht, dass es nur ein DOM-Modell verwendet.
Bei großen Dokumenten und / oder solchen mit großen Verschachtelungsebenen ist es möglich, einen Stapelüberlauf oder Speichermangel zu erreichen. Im Allgemeinen verwendet ein DOM-basiertes Parsing-Modell wesentlich mehr Speicher als ein Streaming-basierter Ansatz, typischerweise weil der Prozess, der den HTML-Code konsumieren möchte, möglicherweise nur wenige Elemente benötigt, um gleichzeitig verfügbar zu sein.
Kennt jemand einen anständigen HTML-Parser für .Net, mit dem Sie HTML ähnlich wie die XmlReader
Klasse XmlReader
? dh in einer nur vorwärts strömenden Weise
Normalerweise verwende ich dazu SgmlReader: https://github.com/MindTouch/SGMLReader
Wie andere gesagt haben, gibt es Probleme darin, dass HTML nicht den gleichen wohlgeformten Regeln von XML folgt, daher ist es inhärent schwierig zu analysieren, aber SgmlReader macht normalerweise einen ziemlich guten Job.