Я пытаюсь найти способ отступа в файле HTML, я использую XMLDocument и просто использую XmlTextWriter.
Однако я не могу правильно отформатировать его для документов HTML, потому что он проверяет тип документа и пытается его загрузить.
Существует ли «тупой» механизм отступов, который не проверяет и не проверяет документ, а отступ делает все возможное? Файлы имеют размер 4-10 МБ, и они генерируются автоматически, мы должны обрабатывать их внутри - это нормально, пользователь может подождать, я просто хочу избежать разветвления на новый процесс и т. д.
Вот мой код для справки
using (MemoryStream ms = new MemoryStream())
using (XmlTextWriter xtw = new XmlTextWriter(ms, Encoding.Unicode))
{
XmlDocument doc = new XmlDocument();
// LoadSettings the unformatted XML text string into an instance
// of the XML Document Object Model (DOM)
doc.LoadXml(content);
// Set the formatting property of the XML Text Writer to indented
// the text writer is where the indenting will be performed
xtw.Formatting = Formatting.Indented;
// write dom xml to the xmltextwriter
doc.WriteContentTo(xtw);
// Flush the contents of the text writer
// to the memory stream, which is simply a memory file
xtw.Flush();
// set to start of the memory stream (file)
ms.Seek(0, SeekOrigin.Begin);
// create a reader to read the contents of
// the memory stream (file)
using (StreamReader sr = new StreamReader(ms))
return sr.ReadToEnd();
}
По сути, прямо сейчас я использую MemoryStream, XmlTextWriter и XmlDocument, после отступа я читаю его обратно из MemoryStream и возвращаю в виде строки. Сбои случаются с документами XHTML и некоторыми документами HTML 4, потому что они пытаются захватить dtds. Я попытался установить XmlResolver как null, но безрезультатно :(