【发布时间】:2011-06-29 19:29:36
【问题描述】:
我正在尝试在 .NET 类库中使用 XslCompiledTransform,以便将 xml 字符串转换为 Html 字符串。请考虑我想使用普通字符串,而不是文件。
我该怎么做?
看来XslCompiledTransform 只适用于文件...
【问题讨论】:
我正在尝试在 .NET 类库中使用 XslCompiledTransform,以便将 xml 字符串转换为 Html 字符串。请考虑我想使用普通字符串,而不是文件。
我该怎么做?
看来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();
}
【讨论】:
我以字符串的形式使用 xslt 和 xml, 它是在同一个 .aspx 页面上生成的, 然后使用 StringWriter 将其转换为 html, 使用文字控件显示 html,将 Stringwriter 数据绑定到它。
string xslt="Add your code for xslt here";//查找任何正常的 xslt 文件。
string xml="Add your code for xml here";//查找任何普通的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();
【讨论】: