変換の補助のためにJavaScriptを埋め込むには、< xsl:script >を使用できますが、MicrosoftのXMLオブジェクトの実装にはit is limitedを使用できます。ここにはexample:
スクリプトがあります。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(またはあなただけのCOM/.NETからMSXMLを使用した場合)の結果は次のとおりです。
<html>
<head>
<title>Scripted</titlte>
</head>
<body>
/ding dong/
</body>
</html>
通常のXSLテンプレート構造をサポートしていないようで、ルートノードを追加すると、MSXMLは動作しない標準モードに移行します。
標準のXSLに同等の機能があるかどうかはわかりませんが、私は夢見ることができます。