XSL-трансформация в Silverlight - PullRequest
       0

XSL-трансформация в Silverlight

2 голосов
/ 03 декабря 2011

Есть ли способ сделать в Silverlight то, что XslCompiledTransform делает в полном .NET?
Пространство имен System.Xml.Xsl, очевидно, не является полным в SL.

1 Ответ

1 голос
/ 03 декабря 2011

Упрощенный ответ: нет. Также трудно понять причину, по которой вы хотели бы, но я уверен, что у вас должна быть такая.

Если вам действительно нужно использовать существующие преобразования XSL в XML и , ваше приложение 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;

Конечно, чтобы сделать этот кросс-браузер, вам нужно будет обнаружить браузер и ввести правильный код в функцию преобразования. Некоторые браузеры заставляют вас прыгать через большее количество обручей, чем другие, но это можно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...