Есть ли XmlReader для HTML в .Net? - PullRequest
4 голосов
/ 23 июня 2011

Я использовал HtmlAgilityPack в прошлом для анализа HTML в .Net, но мне не нравится тот факт, что он использует только модель DOM.

В больших документах и ​​/ или документах с большим уровнем вложенности возможно возникновение переполнения стека или исключений нехватки памяти. Также в целом модель синтаксического анализа на основе DOM использует значительно больше памяти, чем потоковый подход, как правило, потому что процессу, который хочет использовать HTML, может потребоваться доступ только к нескольким элементам за один раз.

Кто-нибудь знает приличный анализатор HTML для .Net, который позволяет вам анализировать HTML способом, аналогичным классу XmlReader? то есть в потоковом режиме только вперед

Ответы [ 2 ]

5 голосов
/ 23 июня 2011

Я обычно использую SgmlReader для этого: https://github.com/MindTouch/SGMLReader

Как уже говорили другие, есть проблемы в том, что HTML не следует тем же правильно сформированным правилам XML, поэтому его по сути сложно анализировать, но SgmlReader обычно выполняет довольно хорошую работу.

1 голос
/ 23 июня 2011

Проблема в том, что HTML может быть искажен.И вы не можете знать, в каком теге отсутствует конечный тег (или какие теги размещены в неправильном порядке), пока вы не проанализируете большую часть документа.

Если документы, которые вы проанализировали,хорошо сложенный, почему бы вам не использовать XmlReader?

...