有没有办法在Silverlight中做XslCompiledTransform
在完整的.NET中做什么?
System.Xml.Xsl命名空间在SL中显然不完整。
答案 0 :(得分:1)
简单的答案是:不。它也很难设想你想要的原因,但我确信你必须有一个。
如果您确实需要在XML 和上使用现有的XSL转换,那么您的silverlight应用程序可以在浏览器中运行,那么您可以在主机浏览器帮助中执行转换。
例如,对于IE,您可以使用: -
HtmlPage.Window.Eval(@ "function transform(xml, xsl)
{
var xmlDOM = new ActiveXObject("MSXML2.DOMDocument.3.0");
xmlDOM.LoadXML(xml);
var xslDOM = new ActiveObject("MSXML2.DOMDocument.3.0");
xslDOM.LoadXML(xsl);
return xmlDOM.transformNode(xslDOM);
}");
现在给出两个字符串,你使用的xml和xsl: -
string result = HtmlPage.Window.Invoke("transform", xmlString, xslString) as string;
当然要制作这个跨浏览器,您需要检测浏览器并将正确的代码注入转换函数。有些浏览器会让你跳过比其他浏览器更多的箍,但它可以完成。