2013-11-20 1 views
1

получил эту ошибку «Не удается найти функцию сопоставления 1-аргумент с именем {урна: Раздирайте-скрипты}. GetImageString()» при вызове C# метод GetImageString (String) с помощью XSLT с помощью Saxon9ee . Процессор, пожалуйста, помогите мне, как решить эту проблемуполучаю ошибку при вызове метода C# С помощью XSLT

Код:.

<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

+0

это просто печатающая проблема? Он работает с '" rend: GetImageString ('somethingFixed') "? Возможно, вам нужно либо: преобразовать '@ path' в строку перед ее передачей (возможно,' text() 'function?), Либо b: принять метод' XPathNodeIterator' –

ответ

1

msxsl:script в пространстве имен urn:schemas-microsoft-com:xslt является собственностью элемент расширения, изначально поддерживается различными версиями Microsoft MSXML, а затем усиливается с msxsl:assembly и msxsl:using для Microsoft XslCompiledTransform. Я не думаю, что Saxon поддерживает этот элемент расширения. Если вы хотите использовать расширения с саксонской проверкой http://www.saxonica.com/documentation/index.html#!extensibility/dotnetextensions.

+0

Правильный, саксонский подход для вызова методов C# сильно отличается от Microsoft. В этой области нет стандарта. –