Это должен быть такой простой вопрос, но я просто не могу понять ответ.
У меня есть XmlNode, и все, что я хочу сделать, это вывести этот узел в виде строки с неповрежденными отступами (табуляцией или пробелами) для лучшей читаемости.
Пока что я пробовал XmlWriter, XmlTextWriter, XmlDocument , XmlReader.
Вывести XmlNode в виде строки БЕЗ отступов очень просто. Я просто делаю XmlNode.OuterXml. Как мне сделать там углубления?
Я хочу сделать это без цикла XmlNode и использования грубой силы для добавления пробелов, потому что я думаю, что должен быть более простой способ.
Спасибо.
Изменить: Для будущих читателей вот ответ:
var xmlNode = is some object of type XmlNode
using (var sw = new StringWriter())
{
using (var xw = new XmlTextWriter(sw))
{
xw.Formatting = Formatting.Indented;
xw.Indentation = 2; //default is 1. I used 2 to make the indents larger.
xmlNode.WriteTo(xw);
}
return sw.ToString(); //The node, as a string, with indents!
}
Причина, по которой мне нужно было это сделать, заключалась в том, чтобы вывести xml узла с выделением синтаксиса. Я использовал AvalonEdit для выделения xml, вывел выделенный текст в html, а затем преобразовал html в FlowDocument, который можно было отображать в RichTextBox.