Это не будет хорошим XML, но если вам нужно просто загрузить плохой документ, тогда HTML Agility Pack - хороший инструмент.Он может упускать из виду многие вещи, которые делают HTML не XHTML и не похожим на XML, поэтому ваш ошибочный ввод XML, вероятно, будет также проанализирован.Объектная модель, которую он выражает, похожа на XmlDocument.например,
HtmlDocument doc = new HtmlDocument();
doc.Load("file.xml");
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
{
HtmlAttribute att = link["href"];
att.Value = FixLink(att);
}
doc.Save("file.htm");
Или вы можете использовать Agility Pack для очистки XML, а затем передать его чистый вывод в настоящий анализатор XML для дальнейшей обработки.
Это быстрый иподвох , который я использовал для разовых задач.Это не обязательно рекомендуется для правильного решения.
Я бы порекомендовал, если позволяет время, каким-то образом отформатировать / исправить ошибочное содержимое XML (например, в виде строки или с помощью другого инструмента) перед передачей его в анализатор XML.