Если вам нужно использовать javascript в преобразовании (например, он содержит набор функций расширения, которые вызываются в преобразовании), вам нужно поместить содержимое javascript (по крайней мере, изодин файл javascript) в отдельном файле таблицы стилей XSLT, используя соответствующий элемент расширения (например, <msxml:script>
) в качестве родителя текстового узла, содержащего код javascript.
Вот оченьПростой пример - использование любого процессора Microsoft XSLT (MSXML3 / 4/6, XslCompiledTransform или XslTransform) :
, файл XSL-JS.xsl:
<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="JScript" implements-prefix="user">
function xml(nodelist) {
return "A B C";
}
</msxsl:script>
</xsl:stylesheet>
Файл XSL-Main.xsl, импортирующий javascript:
<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">
<xsl:import href="XSL-JS.xsl"/>
<xsl:template match="/">
<xsl:value-of select="user:xml(.)"/>
</xsl:template>
</xsl:stylesheet>
Когда преобразование, содержащееся в файле XSL-Main.xsl, применяется к любому документу XML (не используется / игнорируется), требуемый, правильный результат:
A B C
Совершенно другой случай, если вы просто хотите сгенерировать с помощью приложения XSLT файл HTML, который ссылается на данный файл Javascript ,
Затем вы включаете это в код XSLT и генерируете это буквально как часть вывода:
<script type="text/javascript" src="SomePath/SomeFileName.js"></script>