2011-06-29 50 views

回答

4

Load()也接受XmlReaderTransform()接受XmlReader輸入和XmlWriterTextWriterStream作爲輸出的大部分組合。

因此,最典型的情況下,您可以使用StringWriter作爲輸出,並使用StringReader創建的XmlReader作爲輸入。

完整的示例,沒有文件:

string xslt = @"<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform""> 
<xsl:output method=""html"" indent=""no""/> 
<xsl:template match=""*""> 
<p>some html</p> 
</xsl:template> 
</xsl:stylesheet>", xml = @"<xml>boo</xml>"; 

var transform = new XslCompiledTransform(); 
using (var sr = new StringReader(xslt)) 
using (var xr = XmlReader.Create(sr)) 
{ 
    transform.Load(xr); 
} 

using (var sw = new StringWriter()) 
using (var sr = new StringReader(xml)) 
using (var xr = XmlReader.Create(sr)) 
{ 
    transform.Transform(xr, null, sw); 
    string html = sw.ToString(); 
} 
0

我在這同一的.aspx頁面上生成的字符串的形式, 使用XSLT和XML,然後 將其轉換使用的StringWriter爲HTML, 使用文字控件來顯示html,將Stringwriter數據綁定到它。

string xslt =「在此處添加您的代碼xslt」; //查找任何正常的xslt文件。

string xml =「在此處添加您的代碼爲xml」; //查找任何正常的xml文件。

 XslCompiledTransform transform = new XslCompiledTransform(); 

     StringReader sr = new StringReader(xslt); 

     XmlReader xr = XmlReader.Create(sr); 

     transform.Load(xr); 


     StringReader srxml = new StringReader(xml); 

     XmlReader xrxml = XmlReader.Create(srxml); 

     StringWriter writer = new StringWriter(); 

     transform.Transform(xrxml, null, writer); 

     Literal1.Text = writer.ToString(); 

     writer.Close();