Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Here is a stylesheet using <code>for-each-group</code> twice:</p> <pre><code>&lt;xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt; &lt;xsl:output indent="yes"/&gt; &lt;xsl:template match="mappings"&gt; &lt;reductions&gt; &lt;xsl:for-each-group select="mapping" group-by="value"&gt; &lt;reduction&gt; &lt;group&gt;&lt;xsl:value-of select="current-grouping-key()"/&gt;&lt;/group&gt; &lt;xsl:for-each-group select="current-group()/key" group-by="."&gt; &lt;xsl:copy-of select="."/&gt; &lt;/xsl:for-each-group&gt; &lt;/reduction&gt; &lt;/xsl:for-each-group&gt; &lt;/reductions&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>[edit] When I run the posted stylesheet with Saxon 9.4 HE against the input</p> <pre><code>&lt;mappings&gt; &lt;mapping&gt; &lt;key&gt;6718&lt;/key&gt; &lt;value attribute="content_type"&gt;Info Page&lt;/value&gt; &lt;/mapping&gt; &lt;mapping&gt; &lt;key&gt;35905&lt;/key&gt; &lt;value attribute="content_type"&gt;Press releases&lt;/value&gt; &lt;/mapping&gt; &lt;mapping&gt; &lt;key&gt;6718&lt;/key&gt; &lt;value attribute="content_type"&gt;Info Page&lt;/value&gt; &lt;/mapping&gt; &lt;mapping&gt; &lt;key&gt;36941&lt;/key&gt; &lt;value attribute="content_type"&gt;Press releases&lt;/value&gt; &lt;/mapping&gt; &lt;mapping&gt; &lt;key&gt;24920&lt;/key&gt; &lt;value attribute="content_type"&gt;Press releases&lt;/value&gt; &lt;/mapping&gt; &lt;mapping&gt; &lt;key&gt;40244&lt;/key&gt; &lt;value attribute="content_type"&gt;Press releases&lt;/value&gt; &lt;/mapping&gt; &lt;mapping&gt; &lt;key&gt;36639&lt;/key&gt; &lt;value attribute="content_type"&gt;Press releases&lt;/value&gt; &lt;/mapping&gt; &lt;mapping&gt; &lt;key&gt;1861&lt;/key&gt; &lt;value attribute="content_type"&gt;Press releases&lt;/value&gt; &lt;/mapping&gt; &lt;mapping&gt; &lt;key&gt;2280&lt;/key&gt; &lt;value attribute="content_type"&gt;Press releases&lt;/value&gt; &lt;/mapping&gt; &lt;mapping&gt; &lt;key&gt;42062&lt;/key&gt; &lt;value attribute="content_type"&gt;Press releases&lt;/value&gt; &lt;/mapping&gt; &lt;/mappings&gt; </code></pre> <p>I get the result</p> <pre><code>&lt;reductions&gt; &lt;reduction&gt; &lt;group&gt;Info Page&lt;/group&gt; &lt;key&gt;6718&lt;/key&gt; &lt;/reduction&gt; &lt;reduction&gt; &lt;group&gt;Press releases&lt;/group&gt; &lt;key&gt;35905&lt;/key&gt; &lt;key&gt;36941&lt;/key&gt; &lt;key&gt;24920&lt;/key&gt; &lt;key&gt;40244&lt;/key&gt; &lt;key&gt;36639&lt;/key&gt; &lt;key&gt;1861&lt;/key&gt; &lt;key&gt;2280&lt;/key&gt; &lt;key&gt;42062&lt;/key&gt; &lt;/reduction&gt; &lt;/reductions&gt; </code></pre> <p>which is correct as far as I understand your requirements.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload