Сценарий C # в XSLT: ошибка «msxsl: script не может быть пустым» - PullRequest
1 голос
/ 27 марта 2009

У меня есть XSLT со скриптом на C #:

<msxsl:script language="C#" implements-prefix="user">
  <msxsl:using namespace="System.Xml"/>
  <msxsl:using namespace="System.Xml.XPath"/>
  <![CDATA[
    public string GetMenuPath(XPathNodeIterator node)
    {       
      XPathNavigator dataSourceNode = node.Current;
      return dataSourceNode.Name;
    }
  ]]>
</msxsl:script>

И где-то в XSLT эта функция называется:

<xsl:value-of select="user:GetMenuPath(current())"/>

Но когда я пытаюсь запустить XSLT-преобразование для ввода XML (ввод не имеет значения), оно немедленно останавливается с ошибкой «msxsl: script не может быть пустым».

Я понятия не имею, почему ... Я использую nxslt с .NET Framework.

Спасибо за помощь!

Ответы [ 3 ]

1 голос
/ 01 апреля 2009

Спасибо за ваши ответы, теперь я выяснил причину проблемы. Это было потому, что я использовал тег "style" вместо "nxslt" для вызова XSLT-преобразования. «Стиль» работает до тех пор, пока нет сценария расширения.

<nxslt style="transformation.xsl" in="input.xml" out="output.xls" verbose="true">
0 голосов
/ 27 марта 2009

Вы пытались поместить свой метод расширения в отдельную сборку и ссылаться на него таким образом?

Марк

0 голосов
/ 27 марта 2009

Дает ли вам строку, на которой останавливается преобразование? Это откуда он звонит или в теге script?

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