Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml vbScript函数返回无法转换为XSL数据类型的值_Xml_Function_Xslt_Vbscript_Msxsl - Fatal编程技术网

Xml vbScript函数返回无法转换为XSL数据类型的值

Xml vbScript函数返回无法转换为XSL数据类型的值,xml,function,xslt,vbscript,msxsl,Xml,Function,Xslt,Vbscript,Msxsl,当我尝试使用XSL显示XML数据时,出现以下错误。VBScript函数引发以下错误: 函数“MyFuctionName”返回一个无法转换为XSL数据类型的值。 原因可能是什么。 代码快照如下: 1.XML .. 问题在于,函数根本不返回任何值,xsl:value需要一个值。如果只想执行函数而不输出任何内容,可以让函数返回空字符串,但我建议重新考虑您的方法。在XSLT中使用带有副作用的函数通常不是一个好的做法,这与XSLT的原则背道而驰。Ok cool thanx@JLRishe,我的函数返回

当我尝试使用XSL显示XML数据时,出现以下错误。VBScript函数引发以下错误:

函数“MyFuctionName”返回一个无法转换为XSL数据类型的值。 原因可能是什么。
代码快照如下: 1.XML


..

问题在于,函数根本不返回任何值,
xsl:value
需要一个值。如果只想执行函数而不输出任何内容,可以让函数返回空字符串,但我建议重新考虑您的方法。在XSLT中使用带有副作用的函数通常不是一个好的做法,这与XSLT的原则背道而驰。

Ok cool thanx@JLRishe,我的函数返回值或空字符串的样子如何?我已经弄明白了。我将函数设置为null以返回null值。如下所示:函数SetClientID(ID)SetClientID=”“ClientID=ID结束函数非常感谢@JLRishe
        <Client>
             <ClientID>34987886</ClientID>
               <LnkSeqNo>1</LnkSeqNo>
        </Client>
    Dim ClientID 

    function SetClientID(ID)
        ClientID = ID
    end function
    <xsl:for-each select="Object/Client">
           <xsl:if test="LnkSeqNo[. = '1' or . = '57']"> 
              <xsl:value-of disable-output-escaping="yes" select="vbs:SetClientID(string(ClientID))"/>
..
          </xsl:if>
    </xsl:for-each>