假设我有两个字符串:
如果您必须知道的话,xml 和 xsl 数据存储在数据库列中。
如何在 C# 中转换 XML,而不先将 xml 和 xsl 保存为文件?我也希望输出是一个字符串(来自转换的 HTML)。
看来C#更喜欢通过文件进行转换。我在 XslCompiledTransform 中找不到 Load() 的字符串输入重载。所以,这就是我问的原因。
这就是我所采用的。这是您的答案的组合。我对激发此灵感的答案进行了投票:
string output = String.Empty;
using (StringReader srt = new StringReader(xslInput)) // xslInput is a string that contains xsl
using (StringReader sri = new StringReader(xmlInput)) // xmlInput is a string that contains xml
{
using (XmlReader xrt = XmlReader.Create(srt))
using (XmlReader xri = XmlReader.Create(sri))
{
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(xrt);
using (StringWriter sw = new StringWriter())
using (XmlWriter xwo = XmlWriter.Create(sw, xslt.OutputSettings)) // use OutputSettings of xsl, so it can be output as HTML
{
xslt.Transform(xri, xwo);
output = sw.ToString();
}
}
}
注意:xsl 中需要此语句,以便输出为 HTML:
<xsl:output method="html" omit-xml-declaration="yes" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)