首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >msxsl: xslt函数中的c#脚本声明了两次错误

msxsl: xslt函数中的c#脚本声明了两次错误
EN

Stack Overflow用户
提问于 2012-07-12 21:16:45
回答 1查看 794关注 0票数 0

嘿,我正在尝试编写一个xslt模板,该模板使用msxsl从web.config appSetting创建超链接。每次我尝试运行代码时,它都会告诉我,我已经在脚本中声明了两次c#方法。守则如下:

代码语言:javascript
复制
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    xmlns:files="urn:my-script" >
        <msxsl:script implements-prefix="files" language="CSharp">
    <msxsl:assembly name="System.Configuration"/>
    <msxsl:using namespace="System.Configuration"/>
    <![CDATA[
    public string LinkFile()
    {
         string link = System.Configuration.ConfigurationManager.AppSettings["fileUrl"];
         return link;
    }
    ]]>
</msxsl:script>

<xsl:template name="GenerateLinkFile">
    <xsl:param name="fileName"/>
    <xsl:param name="fileId"/>
    <xsl:choose>
        <xsl:when test="$fileName = ''">
            <xsl:value-of select="$fileName"/>
        </xsl:when>
        <xsl:otherwise>
            <a href="files:LinkFile()">
                <xsl:value-of select="$fileName"/>
            </a>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>
</xsl:stylesheet>

运行时试图生成超链接时,我所得到的错误如下所示: System.Xml.Xsl.XslLoadException: Type 'System.Xml.Xsl.CompiledQuery.Script1‘已经用相同的参数类型定义了一个名为'LinkFile’的成员。

EN

回答 1

Stack Overflow用户

发布于 2012-07-13 17:08:59

我对一个示例XML文件运行了XSLT,它运行得很好;这使我相信您可能会从其他XSLT文件中多次调用该XSLT。

处理此问题的最佳方法是,如果您有一个根转换调用其他转换,则从其中包含它,因此它仅被引用一次;其目的是确保该函数在转换过程中只包含一次,否则您将遇到所看到的错误。

或者,独立调用此转换--一种常见的方法是依次将XSLT应用于源文档,每次执行一组转换。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11460817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档