哪些脚本语言在msxml4.dll xsl转换中可用

Which scripting languages are available in msxml4.dll xsl transforms?

本文关键字:转换 xsl dll msxml4 脚本 语言      更新时间:2023-10-16

我正在开发一个本机应用程序,该应用程序使用msxml4.dll进行所有需要添加xsl转换的xml相关工作。我需要<msxsl:script language="...."脚本的xsl.

如果我使用MSXML2命名空间从本机代码调用这些xsl转换,我可以使用哪些脚本语言(c#, JScript, VBScript,…)?当使用System.Xml中的托管xml类时,我可以使用c#吗?

据我所知,你可以使用JScript和VBScript语言与MSXML和msxsl:script。其他语言如果实现了ActiveX脚本引擎接口http://msdn.microsoft.com/en-us/library/xawadt95%28v=VS.85%29.aspx也是可能的。例如,我认为曾经有一个PerlScript第三方脚本引擎,但我不知道它是否仍然存在。

c#是一种。net语言,我确信MSXML和msxsl:script不支持它。

我在MSXML 4.0的本地XP上使用了JScript/WScript(相同的语法)。完美的工作。如果你需要灵感,我已经使用MSXSL.exe作为控制台转换-我将其用于数学和crono。

:

    <line id="hrHand"  stroke-width="4" x2="1000" y2="1000"  marker-start="url(#hrPointer)">
      <xsl:attribute name="x1"><xsl:value-of select="1000-crono:returnX(12) * 200" /></xsl:attribute>
      <xsl:attribute name="y1"><xsl:value-of select="1000-crono:returnY(12) * 200" /></xsl:attribute>
    </line>
  </g>      
   <g>
    <line id="secHand" stroke-width="4" x2="1000" y2="1000"  marker-start="url(#secPointer)">
      <xsl:attribute name="x1"><xsl:value-of select="1000-crono:returnX(12) * 380" /></xsl:attribute>
      <xsl:attribute name="y1"><xsl:value-of select="1000-crono:returnY(12) * 380" /></xsl:attribute>
    </line>
  </g>  
  <g font-family="sans-serif" font-size="64" font-weight="100">    
    <circle  r="50" cx="1000" cy="1000" fill="#a00000" />
    <text fill="#e0e0e0" text-anchor="middle" x="1000" y="1260">CLOCK BY M.RASCH</text>
  </g>    
</svg>
</xsl:template>
  <!--   r u n t i m e S c r i p t                     --> 
<msxsl:script language="JScript" implements-prefix="crono">
function returnX(degree) {
  return Math.cos(degree*Math.PI/180);
}
function returnY(degree) {
  return Math.sin(degree*Math.PI/180);
}
</msxsl:script>