我想在.NET類庫中使用XslCompiledTransform
以便將xml字符串轉換爲Html字符串。請考慮我想使用普通字符串,而不是文件。使用.NET通過Xslt將Xml轉換爲有效的Html片段XslCompiledTransform類
我該怎麼做?
似乎XslCompiledTransform
只有文件工程...
我想在.NET類庫中使用XslCompiledTransform
以便將xml字符串轉換爲Html字符串。請考慮我想使用普通字符串,而不是文件。使用.NET通過Xslt將Xml轉換爲有效的Html片段XslCompiledTransform類
我該怎麼做?
似乎XslCompiledTransform
只有文件工程...
Load()
也接受XmlReader
和Transform()
接受XmlReader
輸入和XmlWriter
,TextWriter
和Stream
作爲輸出的大部分組合。
因此,最典型的情況下,您可以使用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();
}
我在這同一的.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();