¿Versión C # de HTML Tidy?

Solo estoy buscando una forma realmente fácil de limpiar algo de HTML (posiblemente con código JavaScript incrustado). Lo intentédos diferente HTML ordenado Los puertos .NET y ambos están lanzando excepciones ...

Lo sentimos, por "limpio" me refiero a "sangría". El HTML no está mal formado, en absoluto. SusXHTML estricto.

I finalmente tengo algo trabajando conSGML, pero este es en serio el fragmento de código más ridículo que haya sangrado algún código HTML.

private static string FormatHtml(string input)
{
    var sgml = new SgmlReader {DocType = "HTML", InputStream = new StringReader(input)};
    using (var sw = new StringWriter())
    using (var xw = new XmlTextWriter(sw) { Indentation = 2, Formatting = Formatting.Indented })
    {
        sgml.Read();
        while (!sgml.EOF)
            xw.WriteNode(sgml, true);
    }
    return sw.ToString();
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta