Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Function 如何在xslt中调用void外部函数?_Function_Xslt - Fatal编程技术网

Function 如何在xslt中调用void外部函数?

Function 如何在xslt中调用void外部函数?,function,xslt,Function,Xslt,我知道我可以通过以下方式将返回函数的值分配给xslt中的变量: <xsl:variable name="var" select="myClass:function1()"/> 但是我想调用一个void函数,虽然上面的语法仍然有效,但是有更好或更干净的方法吗?从XSLT到Java的接口没有标准化;这取决于您使用的XSLT处理器,因此您需要在问题中包含这些信息。(实际上,您甚至没有说您是否在使用Java;我是根据上下文假设的) 在Saxon中,绝对不建议在xsl:variable中

我知道我可以通过以下方式将返回函数的值分配给xslt中的变量:

<xsl:variable name="var" select="myClass:function1()"/>


但是我想调用一个void函数,虽然上面的语法仍然有效,但是有更好或更干净的方法吗?

从XSLT到Java的接口没有标准化;这取决于您使用的XSLT处理器,因此您需要在问题中包含这些信息。(实际上,您甚至没有说您是否在使用Java;我是根据上下文假设的)


在Saxon中,绝对不建议在xsl:variable中调用具有副作用的函数,因为变量是惰性求值的,因此您无法控制求值顺序,如果从未引用该变量,则根本不会对其求值。如果必须调用具有副作用的函数,最好在xsl:value指令中执行,如果函数确实返回值,则该值将添加到结果树中。(Saxon优化器特意不使用函数从不返回任何内容的知识,这通常会导致它不被调用。)

从XSLT调用void函数有什么意义?理想情况下,我认为您应该避免使用带有副作用的函数,因为这违背了XSLT的功能特性。