这里有一个关于使用 IE 使用的默认 XSL 的解释。
这是从那篇文章复制粘贴的,因为您似乎无法访问它。归功于作者:
Internet Explorer 以相当不错的方式显示 XML。今天我想我会使用相同的引擎在 .NET 2.0 应用程序中显示 XML。所以我将一个 WebBrowser 控件放到一个表单上,并将我的 XML 字符串分配给 DocumentText 属性。瞧?当然不是。
经过一番挖掘,我发现 IE 使用内置的 XSLT-transform 在浏览器中将 XML 呈现为 HTML。有问题的样式表可从 IE 中的以下 uri 获得:res://msxml.dll/defaultss.xsl。好的,那么可以保存这个字符串,并在.NET 中使用它吗?不完全的。事实证明,IE 使用的 XSL 与 .NET 的 XslCompiledTransform 类不兼容。哦!
经过更多的挖掘,事实证明 Steve Muench 已经完成了对 .NET 所需的 XSLT 1.0 REC 的转换。谢啦!该文件可以在这里下载。
我将以下代码添加到我的 WebBrowser 基类中,以允许开发人员通过设置属性来显示 XML:
public XmlDocument DocumentXml
{
set
{
Stream s = <defaultss.xsl from embedded resource file>
XmlReader xr = XmlReader.Create(s);
XslCompiledTransform xct = new XslCompiledTransform();
xct.Load(xr);
StringBuilder sb = new StringBuilder();
XmlWriter xw = XmlWriter.Create(sb);
xct.Transform(value, xw);
this.DocumentText = sb.ToString();
}
}