我知道我可以通过以下方式将返回函数的值赋给xslt中的变量:
<xsl:variable name="var" select="myClass:function1()"/>
Run Code Online (Sandbox Code Playgroud)
但我想调用一个void函数,上面的语法虽然仍然有效,但有更好或更清晰的方法吗?
从XSLT到Java的接口没有标准化; 这取决于您使用的是哪个XSLT处理器,因此您需要在问题中包含此信息.(实际上,你甚至不会说你是否使用Java;我从上下文中假设这一点).
在Saxon中,绝对不建议在xsl:variable中调用具有副作用的函数,因为变量是懒惰地计算的,因此您无法控制评估的顺序,如果变量从未被引用,那么它将不会在所有.如果必须调用具有副作用的函数,最好在xsl:value-of指令中执行此操作,如果函数确实返回值,则该值将添加到结果树中.(Saxon优化器不会使用函数永远不会返回任何东西的知识,这通常会导致它不被调用.)