我如何 return XSLT 3.0 中函数的映射?

How do I return a map from a function in XSLT 3.0?

假设我有一个 f:get-map() 函数 returns 地图。

如何在另一个函数中使用该函数的结果?

现在我是这样做的:

<xsl:function name="f:get-another-map" as="map(*)">
  <xsl:variable name="result" select="f:get-map()"/>
  <xsl:map>
      <xsl:map-entry key="'key1'" select="map:get($result, 'key1')"/>
      <xsl:map-entry key="'key2'" select="map:get($result ,'key2')"/>
  </xsl:map>
</xsl:function>

但是这样比较麻烦。 有更好的方法吗?

一般来说 return 任何函数调用的结果都来自您使用 xsl:sequenceselect 表达式调用函数的函数,例如<xsl:sequence select="f:get-map()"/> returns 调用 f:get-map().

的结果