Если вы застряли с MSXML в качестве вашего процессора, я думаю, что вы должны выбрать вариант 2 в ответе Obalix, но вам, вероятно, придется написать функции расширения самостоятельно.
Вот примеркак вы можете сделать функцию верхнего регистра.Для этого используется javascript в XSLT.
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:user="http://mycompany.com/mynamespace">
<msxsl:script language="javascript" implements-prefix="user">
function uppercase(textToConvert)
{
return textToConvert.toUpperCase();
}
</msxsl:script>
<xsl:template match="text()">
<xsl:value-of select="user:uppercase(string(.))"/>
</xsl:template>
</xsl:stylesheet>
Что бы вы могли сделать, это поместить все функции скрипта в свой собственный лист XSLT и включить его во все ваши собственные таблицы стилей XSLT.
Насколько это сложно, зависит от того, сколько функций XPath2.0 вы использовали.