Как выполнить преобразование XSLT 2.0 с помощью C #

Можно ли использовать преобразование XSLT 2.0 с собственным фреймворком .net?

Я знаю, что это возможно с XSLT 1.0.


person Bob    schedule 18.03.2011    source источник
comment
(и поэтому я подозреваю, что xqsharp.com/xqsharp - ваш лучший выбор)   -  person Marc Gravell    schedule 18.03.2011


Ответы (2)


Microsoft не предлагает никаких процессоров XSLT 2.0.

Процессор XSLT 2.0, который, как утверждается, был написан специально для использования в .NET, - это XQSharp. .

Еще одним очень популярным процессором XSLT 2.0 является Saxon 9.x, который, хотя и написан на Java , имеет специальную версию .NET.

person Dimitre Novatchev    schedule 18.03.2011
comment
оба довольно медленные, поэтому лучше всего придерживаться 1,0 атм :( - person Jaster; 18.03.2011
comment
@Jaster: У меня нет большого опыта работы с XQSharp, но Saxon был настолько оптимизирован, что я категорически не согласен с таким утверждением. Кроме того, люди используют XSLT 2.0 из-за множества новых функций, и несколько миллисекунд не совпадают в 99% случаев. - person Dimitre Novatchev; 18.03.2011
comment
@Jaster: Любой неправильно используемый инструмент может работать медленно. - person ; 18.03.2011
comment
Не вините меня, просто протестируйте производительность с помощью xslt 1.0. Базовый .NET против Saxon от XQSharp. Это не какие-то миллисекунды. @Alejandro, так что использовать их для xslt надето? Эти инструменты предназначены для приготовления кофе? - person Jaster; 21.03.2011
comment
Чтобы добавить некоторые данные, в нашем случае xslt 1.0 занимает 450 мс, а saxon - 750 мс. - person Benjamin Baumann; 26.08.2014
comment
@BenjaminBaumann, я уверен, что то же самое, написанное на Ассемблере, займет 20-30 мс. Но XSLT 2.0 уже довольно старый. В настоящее время люди используют XSLT 3.0 / XPath 3.0. Возможно, за три года, прошедшие с момента написания этого ответа, Saxon добилась еще большей оптимизации (ее можно найти в ее последнем процессоре Saxon9.5.x). - person Dimitre Novatchev; 28.08.2014
comment
Полностью согласен, Димитр. Я просто давал реальные сроки на случай, если это поможет людям. Кстати, тест был сделан с использованием Saxon 9.5, и результаты были хорошими с нашей точки зрения. - person Benjamin Baumann; 29.08.2014
comment
@BenjaminBaumann, при тестировании Saxon хорошо использовать аргумент повторения со значением не менее 3-4, иначе время будет нереально больше, поскольку оно включает время загрузки JVM (IKVM). - person Dimitre Novatchev; 29.08.2014

Я не согласен с тем, что XQSharp (или, если на то пошло, Saxon) работает медленно. Хотя ни один из них в настоящее время не компилируется в MSIL, оба имеют хорошие оптимизаторы. Я знаю по собственному опыту, что большие задачи группировки могут быть быстрее с XQSharp, чем с XslCompiledTransform.

person Tim    schedule 24.03.2011