Извиняюсь за комментирование этого старого потока, но для других, находящих это как я, Вы могли бы также использовать javascript, если вы используете преобразователь MS:
Объявить пространство имен "msxsl":
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
Объявите пространство имен для вашего скрипта:
xmlns:js="urn:custom-javascript"
(Необязательно) Опустить префиксы с выхода:
exclude-result-prefixes="msxsl js"
Таким образом, вы получите объявление xsl, подобное этому:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:js="urn:custom-javascript"
exclude-result-prefixes="msxsl js">
Запишите JavaScript в элементе msxsl: script:
<msxsl:script language="JavaScript" implements-prefix="js">
<![CDATA[
function javascriptFunction(dateValue){
var date = new Date(dateValue);
if(!isNaN(date)) return date.toLocaleString();
return dateValue;
}
]]>
</msxsl:script>
Вызовите функцию JavaScript (используя синтаксис XPath '.', Обозначающий 'этот узел'):
<xsl:value-of select="js:javascriptFunction(string(.))"/>
NB. На момент написания статьи не существует (xsl) способа включения внешних js-файлов (например, библиотеки jquery). Это можно сделать, проанализировав сторону файлового сервера xsl перед преобразованием и добавив содержимое файла js в виде строки в раздел CDATA. Я сам начал идти по этому пути, но пришел к выводу, что если вам нужен такой уровень функциональности, его лучше разместить в другой части конвейера.
источник: http://dev.ektron.com/kb_article.aspx?id=482
ref: http://www.ibm.com/developerworks/xml/library/x-tipxsltjs/index.html