XSL文件已经做好了
XML是拼起来放在一个String str里面的
如果用XSL文件去格式化str输出到一个TextBox里面? xslt.Transform不大会用的...

解决方案 »

  1.   

    XslTransform.Transform 方法如何将结果输出到字符串里?
    http://dotnet.aspx.cc/ShowDetail.aspx?id=651CB7EE-2A14-4473-58E4-4A38E4CF6D4B方法一
    System.Xml.Xsl.XslTransform RssXslt = new System.Xml.Xsl.XslTransform();
    System.Xml.XmlDocument RssXml = new System.Xml.XmlDocument();
    RssXslt.Load(Server.MapPath("RssReader.xslt"));
    RssXml.Load(Server.MapPath("Rss.xml"));
    System.IO.MemoryStream t = new System.IO.MemoryStream();
    RssXslt.Transform(RssXml,null,t,null);
    string resultString = System.Text.UTF8Encoding.UTF8.GetString(t.ToArray());
    TextBox1.Text = resultString;
    方法二
    System.Xml.Xsl.XslTransform RssXslt = new System.Xml.Xsl.XslTransform();
    System.Xml.XmlDocument RssXml = new System.Xml.XmlDocument();
    RssXslt.Load(Server.MapPath("RssReader.xslt"));
    RssXml.Load(Server.MapPath("Rss.xml"));
    System.Text.StringBuilder t = new System.Text.StringBuilder();
    RssXslt.Transform(RssXml,null,new System.IO.StringWriter(t),null);
    string resultString = t.ToString();
    TextBox1.Text = resultString;
      

  2.   

    我一般用方法二
    方法一碰到CDADA内的<>符号似乎会被转义为&lt;和&gt;但是方法一的问题在于输出编码总是utf-16的...
      

  3.   

    先谢了,但又出现了个问题,原来在XSL里有<br/>的,输出后应该不显示的,但现在为什么会输出了<br xmlns:fo="http://www.w3.org/1999/XSL/Format" />?而且第一行的&#65279;<?xml version="1.0" encoding="utf-8"?>怎么去掉?
      

  4.   

    孟子,不用MemoryStream怎么控制编码的..?// 但现在为什么会输出了<br xmlns:fo="http://www.w3.org/1999/XSL/Format" />
    <xsl:output method="html"/>
    试试看
      

  5.   

    最上边打错了,“但是方法二的问题在于输出编码总是utf-16的...”
      

  6.   

    <xsl:output method="html"/>
    这句话加在XSL的哪里?我放到了顶部的xsl:stylesheet下面,但没有效果啊,<br xmlns:fo="http://www.w3.org/1999/XSL/Format" />还是出现了,不过现在我把所有的<br/>都删掉了,又出现了新问题,我要输出"<sss>",在XSL里是这么写的&lt;sss&gt;,现在原样输出了,该怎么改成<>呢?直接写<>是不行的...