Как лучше всего анализировать фрагменты HTML на C#?
Что касается контекста, я унаследовал приложение, которое использует большое количество составных элементов управления, и это нормально, но большая часть элементов управления отображается с использованием длинной последовательности буквальных элементов управления, что довольно устрашающе. Я пытаюсь ввести приложение в модульные тесты, и я хочу, чтобы эти элементы управления прошли тесты, которые выяснят, генерируют ли они правильно сформированный HTML, и в решении мечты проверить этот HTML.





Взгляните на пакет HTMLAgility. Он очень совместим с классом .NET XmlDocument, но гораздо более снисходительно относится к HTML, который не является чистым / действительным XHTML.
Эта библиотека кажется слишком хорошей - я тестирую код, так что хорошо, если теги, оставленные открытыми, взорвут синтаксический анализатор.
Вы можете исправить код и вывести XHTML, а затем сравнить ввод и вывод.
Я использовал SGMLReader для создания действительного документа Xml из HTML, а затем проанализировал то, что требуется, с помощью XPath или другого формата с помощью XSLT. .
Если HTML совместим с XHTML, вы можете использовать встроенное пространство имен System.Xml.
Вы также можете изучить HTML Tidy для разбора / очистки HTML. Я не думаю, что у них есть определенные библиотеки .NET, но вы можете запустить двоичный файл через командную строку или IKVM библиотеки java.
Если принятый ответ на самом деле является лучшим ответом, я думаю, что заголовок вопроса следует отредактировать, чтобы отразить, что вы анализируете не HTML, а XML.