title: XSLT: for-each-group select with condition - not(contains())
body: <p>I would like to get help with my problem in creating an xslt transform.
  I need to get select from xsl:for-each-group with some conditions.
  I need to get all elements, which sub-element have text in sub-element &quot;Zkrat&quot; not same as text in this array</p>
  <pre><code>&lt;xsl:variable name=&quot;zkratky&quot;&gt;
        &lt;zkratka&gt;1&lt;/zkratka&gt;
        &lt;zkratka&gt;2&lt;/zkratka&gt;
        &lt;zkratka&gt;5&lt;/zkratka&gt;
        &lt;zkratka&gt;6&lt;/zkratka&gt;
  &lt;/xsl:variable&gt;
  
  &lt;xsl:variable name=&quot;lookup&quot; select=&quot;document('')//xsl:variable[@name='zkratky']&quot;/&gt;
  </code></pre>
  <p>My XML file input is:</p>
  <pre><code>&lt;MoneyData&gt;
      &lt;SeznamObjPrij&gt;
          &lt;ObjPrij&gt;
              &lt;Polozka&gt;
                  &lt;KmKarta&gt;
                      &lt;Popis&gt;Main title&lt;/Popis&gt;
                      &lt;TypKarty&gt;komplet&lt;/TypKarty&gt;
                      &lt;Slozeni&gt;
                          &lt;Komponenta&gt;
                              &lt;KmKarta&gt;
                                  &lt;Popis&gt;Subtitle Item1&lt;/Popis&gt;
                                  &lt;Zkrat&gt;2&lt;/Zkrat&gt;
                                  &lt;Katalog&gt;1111&lt;/Katalog&gt;
                              &lt;/KmKarta&gt;
                              &lt;PocMj&gt;1&lt;/PocMj&gt;
                          &lt;/Komponenta&gt;
                          &lt;Komponenta&gt;
                              &lt;KmKarta&gt;
                                  &lt;Popis&gt;Subtitle Item2&lt;/Popis&gt;
                                  &lt;Zkrat&gt;1&lt;/Zkrat&gt;
                                  &lt;Katalog&gt;22222&lt;/Katalog&gt;
                              &lt;/KmKarta&gt;
                              &lt;PocMj&gt;4&lt;/PocMj&gt;
                          &lt;/Komponenta&gt;
                          &lt;Komponenta&gt;
                              &lt;KmKarta&gt;
                                  &lt;Popis&gt;Subtitle Item3&lt;/Popis&gt;
                                  &lt;Zkrat&gt;3&lt;/Zkrat&gt;
                                  &lt;Katalog&gt;1111&lt;/Katalog&gt;
                              &lt;/KmKarta&gt;
                              &lt;PocMj&gt;1&lt;/PocMj&gt;
                          &lt;/Komponenta&gt;
                      &lt;/Slozeni&gt;
                  &lt;/KmKarta&gt;
              &lt;/Polozka&gt;
              &lt;Polozka&gt;
                  &lt;KmKarta&gt;
                      &lt;Popis&gt;Test&lt;/Popis&gt;
                      &lt;TypKarty&gt;jednoducha&lt;/TypKarty&gt;
                  &lt;/KmKarta&gt;
              &lt;/Polozka&gt;
              &lt;Polozka&gt;
                  &lt;KmKarta&gt;
                      &lt;Popis&gt;Main title&lt;/Popis&gt;
                      &lt;TypKarty&gt;komplet&lt;/TypKarty&gt;
                      &lt;Slozeni&gt;
                          &lt;Komponenta&gt;
                              &lt;KmKarta&gt;
                                  &lt;Popis&gt;Subtitle Item1&lt;/Popis&gt;
                                  &lt;Zkrat&gt;2&lt;/Zkrat&gt;
                                  &lt;Katalog&gt;1111&lt;/Katalog&gt;
                              &lt;/KmKarta&gt;
                              &lt;PocMj&gt;10&lt;/PocMj&gt;
                          &lt;/Komponenta&gt;
                          &lt;Komponenta&gt;
                              &lt;KmKarta&gt;
                                  &lt;Popis&gt;Subtitle Item2&lt;/Popis&gt;
                                  &lt;Zkrat&gt;2&lt;/Zkrat&gt;
                                  &lt;Katalog&gt;33333&lt;/Katalog&gt;
                              &lt;/KmKarta&gt;
                              &lt;PocMj&gt;1&lt;/PocMj&gt;
                          &lt;/Komponenta&gt;
                          &lt;Komponenta&gt;
                              &lt;KmKarta&gt;
                                  &lt;Popis&gt;Subtitle Item3&lt;/Popis&gt;
                                  &lt;Zkrat&gt;1&lt;/Zkrat&gt;
                                  &lt;Katalog&gt;1111&lt;/Katalog&gt;
                              &lt;/KmKarta&gt;
                              &lt;PocMj&gt;2&lt;/PocMj&gt;
                          &lt;/Komponenta&gt;
                          &lt;Komponenta&gt;
                              &lt;KmKarta&gt;
                                  &lt;Popis&gt;Subtitle Item4&lt;/Popis&gt;
                                  &lt;Zkrat&gt;3&lt;/Zkrat&gt;
                                  &lt;Katalog&gt;4444&lt;/Katalog&gt;
                              &lt;/KmKarta&gt;
                              &lt;PocMj&gt;1&lt;/PocMj&gt;
                          &lt;/Komponenta&gt;
                      &lt;/Slozeni&gt;
                  &lt;/KmKarta&gt;
              &lt;/Polozka&gt;
          &lt;/ObjPrij&gt;
      &lt;/SeznamObjPrij&gt;
  &lt;/MoneyData&gt;
  </code></pre>
  <p>My xslt transform:</p>
  <pre><code>&lt;xsl:for-each-group select=&quot;Polozka/KmKarta/Slozeni/Komponenta[$lookup[not(contains(., KmKarta/Zkrat))]]&quot; group-by=&quot;KmKarta/Katalog&quot;&gt;
         &lt;xsl:sort select=&quot;KmKarta/Popis&quot;/&gt;
         &lt;tr&gt;
             &lt;td&gt;&lt;xsl:value-of select=&quot;KmKarta/Popis&quot;/&gt;&lt;/td&gt;
             &lt;td&gt;&lt;xsl:value-of select=&quot;current-grouping-key()&quot;/&gt;&lt;/td&gt;
             &lt;td&gt;&lt;xsl:value-of select=&quot;KmKarta/Zkrat&quot;/&gt;&lt;/td&gt;
             &lt;td&gt;&lt;xsl:value-of select=&quot;sum(current-group()/PocMJ)&quot;/&gt;&lt;/td&gt;
         &lt;/tr&gt;
  &lt;/xsl:for-each-group&gt;
  </code></pre>
  <p>I always get all elements or none. Or this message:
  Wrong occurrence to match required sequence type
  Error location: xsl:stylesheet / xsl:template / div / table / tbody / xsl:for-each-group / @select
  Details
  XPTY0004: The parameter value ('4' item(s)) at position '1' of the 'contains' function has the wrong occurrence to match the sequence type xs:string ('zero or one')</p>
  <p>Please, help me.
  Thank you very much :)</p>