Пример #1
0
        /// <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));
                            }
                        }
                    }
                }
            }
        }
Пример #2
0
        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());
            }
        }