Re: [xsl] Using xsl:iterate inside <xsl:for-each-group> xslt 3.0

Subject: Re: [xsl] Using xsl:iterate inside <xsl:for-each-group> xslt 3.0
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 18 Aug 2020 17:59:51 -0000
Am 18.08.2020 um 19:56 schrieb Terry Ofner tdofner@xxxxxxxxx:
Hmm. The map:merge appears to fiddle with the ?letter and the ?term. It
appears that the position() is coming from the $groups map. Not sure why
the letter is stuck on S and the term on sentence. Do I need an argument
within the map merge to tell how to merge the two?

<xsl:iterateselect="for $p in p[@class = 'nl'] return $groups !
map:merge(($groups, map { 'p' : $p }))">

<xsl:text>&#10;</xsl:text>
<write_choiceB  spanNum="{position() - 1}"letter="{?letter}"
 B  B  B  B  B  B  B  B  B  B  B  B  B  B  term="{?term}"ans="{?p}"/>
</xsl:iterate>

I got the select wrong again, the following hopefully does what I tried to implement:

      <xsl:apply-templates
        select="for $p in p[@class = 'nl']
                return $groups
                       !
                       map:merge(
                         (.,
                          map { 'p' : $p })
                       )"/>

Current Thread