如何从XSLT 3.0中的函数返回映射?

时间:2019-05-26 16:21:30

标签: xslt xpath xslt-3.0

假设我有一个返回地图的函数f:get-map()

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

现在我正在这样做:

<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>

但这很麻烦。 有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

通常要返回某个函数的任何函数调用结果,请使用xsl:sequenceselect表达式来调用该函数,例如<xsl:sequence select="f:get-map()"/>返回调用f:get-map()的结果。