小弟有一个XML文档和一个XSL文档。我想得到用XSl转换出来后的结果(字符串)。但是我找来找去,都没找到怎样直接得到转换结果,只能将转换结果输入到一个TextWriter类中。在此我只能采取用临时文件存储的方式这种方式:
XmlDocument doc = (XmlDocument) t.InvokeMember (m_strMethod,BindingFlags.Default | BindingFlags.InvokeMethod,null,null,param);//得到XML XslTransform xsl = new XslTransform();
xsl.Load(Server.MapPath(xslPath));//得到XSL
string T=Server.MapPath("Content.dat");//临时文件
StreamWriter writer=new StreamWriter(T);//创建临时文件
xsl.Transform(doc,null,writer,null);//向临时文件输出转换结果
writer.Close();
StreamReader reader=new StreamReader(T);//打开临时文件
string c=reader.ReadToEnd();//得到转换结果
但是如果每次转换都像这样的话会浪费不少的系统资源。哪位大哥知道怎样直接得到转换结果?

解决方案 »

  1.   

    可用StreamWriter输出到其它流中,比如MemoryStream
      

  2.   

    use System.IO.StringWriterhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconXPathDocumentInputToXslTransform.aspusing System.Text;XslTransform xsl = new XslTransform();
    xsl.Load(Server.MapPath(xslPath));StringBuilder sb = new StringBuilder();
    StringWriter writer = new StringWriter(sb);xsl.Transform(doc,null,writer,null);
    writer.Close();

    string sHTML = sb.ToString()
      

  3.   

    多谢!
    得到了你的提示,我最后用StringWriter替换了StreamWriter,问题解决了。