public static void TransformDocumentToStream(FileBufferedStream xmlDataStream, string xslContent, FileBufferedStream fbs) { //1. Load xml and xsl content to XmlReader XmlReader xsl = XmlReader.Create(new StringReader(xslContent)); XmlReader xml = XmlReader.Create(xmlDataStream.GetStream()); //2. Create XmlWriter XmlWriterSettings settings = new XmlWriterSettings(); settings.ConformanceLevel = ConformanceLevel.Auto; using (XmlWriter writer = XmlWriter.Create(fbs, settings)) { //3. Transform document XslCompiledTransform transformer = new XslCompiledTransform(); transformer.Load(xsl, new System.Xml.Xsl.XsltSettings(false, true), null); transformer.Transform(xml, writer); } }
private void button19_Click(object sender, EventArgs e) { FileBufferedStream xml = new FileBufferedStream(); FileStream fs = File.OpenRead(@"D:\work\ProntoDir\xsl\merge.xml"); xml.Append(fs); StreamReader sr = new StreamReader(@"D:\work\ProntoDir\xsl\merge.xsl"); string xsl = sr.ReadToEnd(); sr.Close(); FileBufferedStream result = new FileBufferedStream(); result.Append("1111111111111111111111111111"); TransformDocumentToStream(xml, xsl, result); result.Append("2222222222222222"); string strresult = result.Reader().ReadToEnd(); MessageBox.Show(strresult); }