小弟有一个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();//得到转换结果
但是如果每次转换都像这样的话会浪费不少的系统资源。哪位大哥知道怎样直接得到转换结果?
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();//得到转换结果
但是如果每次转换都像这样的话会浪费不少的系统资源。哪位大哥知道怎样直接得到转换结果?
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()
得到了你的提示,我最后用StringWriter替换了StreamWriter,问题解决了。