Чтобы встроить JavaScript для помощи преобразования, вы можете использовать , но ограничено реализацией объектов XML Microsoft. Вот пример :
scripted.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="scripted.xsl"?>
<data a="v">
ding dong
</data>
scripted.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:script implements-prefix="local" language="JScript"><![CDATA[
function Title()
{
return "Scripted";
}
function Body(text)
{
return "/" + text + "/";
}
]]></xsl:script>
<head>
<title><xsl:eval>Title()</xsl:eval></title>
</head>
<body>
<xsl:for-each select="/data"><xsl:eval>Body(nodeTypedValue)</xsl:eval></xsl:for-each>
</body>
</html>
Результат в Internet Explorer (или если вы просто используете MSXML из COM / .NET):
<html>
<head>
<title>Scripted</titlte>
</head>
<body>
/ding dong/
</body>
</html>
Похоже, он не поддерживает обычные конструкции шаблона XSL, а добавление корневого узла приводит к переходу MSXML в какой-то режим стандартов, где он не будет работать.
Я не уверен, есть ли какая-либо эквивалентная функциональность в стандартном XSL, но я могу мечтать.