Я использую HtmlAgilityPack. Я создаю HtmlDocument и LoadHtml со следующей строкой:
<select id="foo_Bar" name="foo.Bar"><option selected="selected" value="1">One</option><option value="2">Two</option></select>
Это делает некоторые неожиданные вещи. Во-первых, он дает две ошибки синтаксического анализатора, EndTagNotRequired. Во-вторых, узел выбора имеет 4 дочерних элемента - два для тегов параметров и еще два для внутреннего текста тегов параметров. Наконец, OuterHtml выглядит так:
<select id="foo_Bar" name="foo.Bar"><option selected="selected" value="1">One<option value="2">Two</select>
Так что, в основном, я решаю опустить закрывающие теги на опции. Давайте на минуту оставим в стороне, насколько это уместно и желательно. Я использую HtmlAgilityPack для тестирования кода генерации HTML, поэтому я не хочу, чтобы он принимал за меня решение или выдавал какие-либо ошибки, если HTML-код не является действительно неправильным. Есть ли способ заставить его вести себя так, как я хочу? Я попытался установить некоторые параметры для HtmlDocument, а именно:
doc.OptionAutoCloseOnEnd = false;
doc.OptionCheckSyntax = false;
doc.OptionFixNestedTags = false;
Это не работает. Если HtmlAgilityPack не может делать то, что я хочу, можете ли вы порекомендовать что-то, что может?