![](/img/trans.png)
[英]Error UnathorizedException when invoking JavaScript from 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:assembly
和msxsl:using
对Microsoft XslCompiledTransform
进行了增强。 我认为Saxon不支持该扩展元素。 如果您想将扩展名与Saxon一起使用,请访问http://www.saxonica.com/documentation/index.html#!extensibility/dotnetextensions 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.