Мне не удалось заставить работать XmlValidatingReader & ValidationEventHandler. XmlException все еще выбрасывается для неправильно сформированного XML. Я проверил это, просмотрев методы с отражателем.
Мне действительно нужно проверять сотни коротких фрагментов XHTML в секунду.
public static bool IsValidXhtml(this string text)
{
bool errored = false;
var reader = new XmlValidatingReader(text, XmlNodeType.Element, new XmlParserContext(null, new XmlNamespaceManager(new NameTable()), null, XmlSpace.None));
reader.ValidationEventHandler += ((sender, e) => { errored = e.Severity == System.Xml.Schema.XmlSeverityType.Error; });
while (reader.Read()) { ; }
reader.Close();
return !errored;
}
XmlParserContext также не работал.
Кто-нибудь преуспевает с регулярным выражением?