我使用下面的代碼記憶轉化C#XSLT
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.LoadXml(DS.GetXml());
XslCompiledTransform XsltTranformation = new XslCompiledTransform();
XsltTranformation.Load(@"C:\Users\maskew\Desktop\XSLTMapping.xsl");
Stream XmlStream = new MemoryStream();
XmlDoc.Save(XmlStream); //Stream is still blank after this line
XmlReader XmlRdr = XmlReader.Create(XmlStream);
MemoryStream stm = new MemoryStream();
XsltTranformation.Transform(XmlRdr, null, stm);
stm.Position = 1;
StreamReader sr = new StreamReader(stm);
string Output = sr.ReadToEnd();
Output = Output.Substring(2);
XmlDoc.LoadXml(Output);
XmlWriter XmlWrtr = XmlWriter.Create(@"C:\Users\maskew\Desktop\XmlMapping.xml");
XmlDoc.WriteTo(XmlWrtr);
XmlWrtr.Flush();
XmlWrtr.Close();
但是當前運行的活動「內存」 XSLT轉換,當我從XmlDocument的移動文件在第6行到MemoryStream的流包含什麼當檢查時,從而停止整個程序運行。
有沒有人有任何想法,爲什麼會發生?
更新:該流包含現在的信息,但XmlReader對象仍然沒有收到它。
你是如何確認該流爲空?你正在檢查長度還是試圖從中讀取? – detaylor 2012-08-10 08:00:11
正試圖從中讀取,關閉檢查顯示包含700多個字符的流,然後影響我的開場白問題。當移動到有問題的XmlReader並且沒有任何內容進入Reader時,現在是下面的行。 – Mike 2012-08-10 08:06:27