Создать функцию XPath в XSLT 1.0
Я ищу, как создать свою собственную функцию XPath в XSLT-1.0. Например, у меня есть простое выражение XPath, которое я использую снова и снова в моем шаблоне XSLT. Я хочу создать свою собственную функцию XPath myOwnFunction($var)
который вызывает выражение XPath.
пример выражения:
normalize-space(substring-after(substring-after($var, '-'), '-'))
3 ответов
предыдущие два ответа сказали все: XSLT 1.0 не предоставляет средства для создания функций, на которые можно ссылаться из выражения XPath.
Если кто-то хочет такую функциональность, они должны начать использовать XSLT 2.0 (и использовать стандарт элемент
использовать
<func:function>
элемент расширения, предоставляемый EXSLT. Обратите внимание, что очень мало XSLT 1.0 процессоры реализуют этот элемент расширения.используйте определенную функцию процессора XSLT, если таковая существует. Для платформы .NET можно использовать XsltContext класс IXsltContextFunction интерфейс и методы, такие как этой.
в любом случае, все это совсем не Программирование XSLT, поэтому мой совет-начать серьезно использовать XSLT 2.0.
Если вы застряли с 1.0, вы можете проверить, поддерживает ли ваш процессор функции EXSLT.
XSLT 1.0 не определяет эту функциональность. Он был добавлен в XSLT 2.0. для этого вам придется либо использовать 2.0, либо использовать некоторые средства реализации.