繁体   English   中英

从XSLT调用C#方法时出错

[英]getting error when invoking C# method From XSLT

使用Saxon9ee处理器从XSLT调用C#方法GetImageString(String)时,收到此错误“找不到匹配的1-参数名为{urn:rend-scripts} GetImageString()的函数。 ”。请帮助我解决此问题。

码:

 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:xpp="http://www.sdl.com/xpp"  xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:rend="urn:rend-scripts" exclude-result-prefixes="xsl xpp msxsl rend">
 <msxsl:script language="c#" implements-prefix="rend">
 <msxsl:assembly href="C:\Users\velagasx\Desktop\dll4rtf\System.IO.dll"/>
 <msxsl:assembly href="C:\Users\velagasx\Desktop\dll4rtf\System.Drawing.dll"/>
 <msxsl:using namespace="System.IO"/>
 <msxsl:using namespace="System.Drawing"/>    
 <![CDATA[
    public string GetImageString(String path_to_image){
      MemoryStream stream = new MemoryStream();
      Image img = Image.FromFile(path_to_image);
      img.Save(stream, System.Drawing.Imaging.ImageFormat.Tiff);
      byte[] bytes = stream.ToArray();
      string output = BitConverter.ToString(bytes, 0).Replace("-", string.Empty);          
      return output;
      }
    ]]>

    <xsl:template match="img">
       <xsl:value-of select="rend:GetImageString(@path)"/>
    </xsl:template>

谢谢

Srinadh

命名空间urn:schemas-microsoft-com:xslt中的msxsl:script是专有的扩展元素,最初由各种Microsoft MSXML版本支持,然后通过msxsl:assemblymsxsl:using对Microsoft XslCompiledTransform进行了增强。 我认为Saxon不支持该扩展元素。 如果您想将扩展名与Saxon一起使用,请访问http://www.saxonica.com/documentation/index.html#!extensibility/dotnetextensions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM