我有一个XslCompiledTransform
对象,我想要一个XmlReader
对象中的输出,因为我需要通过第二个样式表传递它。我有点困惑——我可以成功地转换一些 XML 并使用 aStreamReader
或 an读取它XmlDocument
,但是当我尝试 an 时XmlReader
,我什么也得不到。
在下面的示例中,stylesheet
是我的XslCompiledTransform
对象。前两个Console.WriteLine
调用输出正确的转换后的 XML,但第三个调用没有给出 XML。我猜这可能XmlTextReader
是期待文本,所以也许我需要将它包装在 StreamReader 中..?我究竟做错了什么?
MemoryStream transformed = new MemoryStream();
stylesheet.Transform(input, args, transformed);
transformed.Position = 0;
StreamReader s = new StreamReader(transformed);
Console.WriteLine("s = " + s.ReadToEnd()); // writes XML
transformed.Position = 0;
XmlDocument doc = new XmlDocument();
doc.Load(transformed);
Console.WriteLine("doc = " + doc.OuterXml); // writes XML
transformed.Position = 0;
XmlReader reader = new XmlTextReader(transformed);
Console.WriteLine("reader = " + reader.ReadOuterXml()); // no XML written