.NET: XSLT-трансформация XML-строки в форматированную строку с отступами и переносом строк
Предположим Вам необходимо трансформировать одну XML строку в другую XML строку, которая должна содержать отступы и переводы строк. То есть, отформатирована для удобного и легкого чтения. Не рассматривая вопросы производительности, можно сделать это следующим способом:
////// Transforms one XML-string( /// Input XML string /// XSLT file name ///) into another XML-string /// using XSLT file( ) /// 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(); }