Silverlight中的XSL转换

时间:2011-12-03 14:48:15

标签: .net xml silverlight xslt

有没有办法在Silverlight中做XslCompiledTransform在完整的.NET中做什么? System.Xml.Xsl命名空间在SL中显然不完整。

1 个答案:

答案 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;

当然要制作这个跨浏览器,您需要检测浏览器并将正确的代码注入转换函数。有些浏览器会让你跳过比其他浏览器更多的箍,但它可以完成。