.NET: XSLT-трансформация XML-строки в форматированную строку с отступами и переносом строк

Предположим Вам необходимо трансформировать одну XML строку в другую XML строку, которая должна содержать отступы и переводы строк. То есть, отформатирована для удобного и легкого чтения. Не рассматривая вопросы производительности, можно сделать это следующим способом:

/// 
/// Transforms one XML-string() into another XML-string
/// using XSLT file()
/// 
/// Input XML string
/// XSLT file name
/// Transformed and formatted XML-string
public static string Transform(string source, string xsltFileName)
{
    //Read the xml string into XPathDocument
    XmlTextReader xmlTextReader = new XmlTextReader(new StringReader(source));
    XPathDocument xPathDoc = new XPathDocument(xmlTextReader);
    //Create and load transform from file
    XslCompiledTransform xslTransform = new XslCompiledTransform();
    xslTransform.Load(xsltFileName);
    //Create a writer for writing the transformed file
    StringBuilder sb = new StringBuilder();
    XmlTextWriter xmlTextWriter = new XmlTextWriter(new StringWriter(sb));
    //Do the transformation
    xslTransform.Transform(xPathDoc, xmlTextWriter);
    //Format output with indent and new lines via XDocument
    return XDocument.Parse(sb.ToString()).ToString();
}
Оценка: