четверг, 29 января 2009 г.

Вывод XML в виде форматированного текста

Иногда возникает задача вывести некий Xml документ в строку, а иногда даже в виде текста на HTML страничке. Я нашел два похожих варианта решения.

Вариант с использованием XmlTextWriter

StringBuilder builder = new StringBuilder();
XmlTextWriter wr = new XmlTextWriter(new StringWriter(builder));
wr.Indentation = 2;
wr.IndentChar = '\t';
wr.Formatting = Formatting.Indented;

//Этот запрос заполняет строку builder xml данными форматированными символами "/t и /n"
ExecuteQuery(query, new SparqlXmlQuerySink(wr));


string s = builder.ToString();
//А это нам понадобилось чтобы получить возможность вставить строку в HTML
s.Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;").Replace("<", "&lt;").Replace(">", "&gt;").Replace("\n", "br")


Вариант с использованием XmlWriter

StringBuilder builder = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = ("\t");

XmlWriter xmlWriter = XmlWriter.Create(builder, settings);

//Заполняем builder XML кодом и опять получаем строку форматированную символами "/t и /n"
manager.Write(xmlWriter);

Комментариев нет :

Отправить комментарий