/// <summary> /// Transforms an XML using the XSL. /// </summary> /// <param name="xml">The XML to transform.</param> /// <param name="xsl">The XSL to use to transform.</param> /// <returns></returns> public static Tuple <string, XslTimings> Transform(string xsl, string xml, XslOptions options) { Contract.Requires(xsl != null); Contract.Requires(xml != null); Contract.Requires(options != null); using (TextReader xmlReader = new StringReader(xml)) { using (TextReader xslReader = new StringReader(xsl)) { using (Stream output = new MemoryStream()) { XslTimings timing = Transform(xslReader, xmlReader, output, options); output.Position = 0; using (StreamReader sr = new StreamReader(output, options.OutputEncoding)) { StringBuilder sb = new StringBuilder(); using (StringWriterWithEncoding xmlWriter = new StringWriterWithEncoding(sb, options.OutputEncoding)) { xmlWriter.Write(sr.ReadToEnd()); return(new Tuple <string, XslTimings>(xmlWriter.ToString(), timing)); } } } } } }
public override string ToString() { using (var sw = new StringWriterWithEncoding(Encoding.UTF8)) { //Keep uft-8 BOM encoding (if required) if (PreserveBomChar && RawContent[0] == 0xEF && RawContent[1] == 0xBB && RawContent[2] == 0xBF) { sw.Write(bomChar); } sw.Write(GetContent()); return(sw.ToString()); } }